--- title: Number.prototype.toPrecision() slug: Web/JavaScript/Reference/Global_Objects/Number/toPrecision tags: - JavaScript - Method - Number - Prototype translation_of: Web/JavaScript/Reference/Global_Objects/Number/toPrecision ---
{{JSRef}}

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

{{EmbedInteractiveExample("pages/js/number-toprecision.html")}}

構文

numObj.toPrecision([precision])

引数

precision {{optional_inline}}
有効数字の数を指定する整数です。

返値

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

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

例外

{{jsxref("Global_Objects/RangeError", "RangeError")}}
precision が 1 と 100 の間 (両端を含む) でない場合、 {{jsxref("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'

仕様書

仕様書
{{SpecName('ESDraft', '#sec-number.prototype.toprecision', 'Number.prototype.toPrecision')}}

ブラウザーの互換性

{{Compat("javascript.builtins.Number.toPrecision")}}

関連情報