Number.prototype.toPrecision()

toPrecision() メソッドは Number オブジェクトを指定された精度で表した文字列を返します。

構文

numObj.toPrecision([precision])

引数

precision
任意です。有効数字の数を指定する整数です。

戻り値

Number オブジェクトを precision で指定された桁で概数化された、固定小数点数、または指数表記で表した文字列です。概数の表現方法については Number.prototype.toFixed() メソッドの説明を参照してください。それは toPrecision() にも適用されます。

引数 precision が省略された場合、Number.prototype.toString() のように振舞います。precision が整数の値ではない場合は、最も近い整数に概数化されます。

例外

RangeError
precision が(包括的に) 1 と 100 の間でない場合、 RangeError が throw されます。実装上はこの範囲を超えた値もサポートできます。ECMA-262 では 21 桁までの制度を必要とします。

toPrecision を使う

var num = 5.123456;

console.log(numObj.toPrecision());    // logs '5.123456'
console.log(numObj.toPrecision(5));   // logs '5.1235'
console.log(numObj.toPrecision(2));   // logs '5.1'
console.log(numObj.toPrecision(1));   // logs '5'

numObj = 0.000123

console.log(numObj.toPrecision());    // logs '0.000123'
console.log(numObj.toPrecision(5));   // logs '0.00012300'
console.log(numObj.toPrecision(2));   // logs '0.00012'
console.log(numObj.toPrecision(1));   // logs '0.0001' 

// note that exponential notation might be returned in some circumstances
console.log((1234.5).toPrecision(2)); // logs '1.2e+3'

仕様

仕様書 策定状況 コメント
ECMAScript 3rd Edition (ECMA-262) 標準 初期定義です。JavaScript 1.5 で実装されました。
ECMAScript 5.1 (ECMA-262)
Number.prototype.toPrecision の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
Number.prototype.toPrecision の定義
標準  
ECMAScript Latest Draft (ECMA-262)
Number.prototype.toPrecision の定義
ドラフト  

ブラウザー実装状況

Update compatibility data on GitHub
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeAndroid 版 FirefoxAndroid 版 OperaiOSのSafariSamsung InternetNode.js
toPrecisionChrome 完全対応 1Edge 完全対応 12Firefox 完全対応 1IE 完全対応 5.5Opera 完全対応 ありSafari 完全対応 2WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 ありSafari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 あり

凡例

完全対応  
完全対応

関連情報