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 が発生します。実装上はこの範囲を超えた値にも対応できます。 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 の定義

ブラウザーの互換性

BCD tables only load in the browser

関連情報