Number.prototype.toPrecision()

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

試してみましょう

構文

toPrecision()
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())    // '5.123456' と出力
console.log(numObj.toPrecision(5))   // '5.1235' と出力
console.log(numObj.toPrecision(2))   // '5.1' と出力
console.log(numObj.toPrecision(1))   // '5' と出力

numObj = 0.000123

console.log(numObj.toPrecision())    // '0.000123' と出力
console.log(numObj.toPrecision(5))   // '0.00012300' と出力
console.log(numObj.toPrecision(2))   // '0.00012' と出力
console.log(numObj.toPrecision(1))   // '0.0001' と出力

// なお、場合によっては指数表記が返されることがあります。
console.log((1234.5).toPrecision(2)) // '1.2e+3' と出力

仕様書

Specification
ECMAScript Language Specification
# sec-number.prototype.toprecision

ブラウザーの互換性

BCD tables only load in the browser

関連情報