Number.prototype.toPrecision()

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

構文

numObj.toPrecision([precision])

引数

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

返値

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

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

例外

RangeError
precision が 1 と 100 の間 (両端を含む) でない場合、 RangeError が発生します。実装上はこの範囲を超えた値にも対応できます。 ECMA-262 では 21 桁までの精度のみを要求しています。

toPrecision の使用

let numObj = 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 (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 完全対応 7Safari 完全対応 2WebView Android 完全対応 1Chrome Android 完全対応 18Firefox Android 完全対応 4Opera Android 完全対応 10.1Safari iOS 完全対応 1Samsung Internet Android 完全対応 1.0nodejs 完全対応 0.1.100

凡例

完全対応  
完全対応

関連情報