Number.prototype.toPrecision()

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

toPrecision() 方法是 Number 值的一個方法,它返回一個字串,該字串表示此數字,並具有指定的有效數字位數。

試一試

function precise(x) {
  return x.toPrecision(4);
}

console.log(precise(123.456));
// Expected output: "123.5"

console.log(precise(0.004));
// Expected output: "0.004000"

console.log(precise(1.23e5));
// Expected output: "1.230e+5"

語法

js
toPrecision()
toPrecision(precision)

引數

precision 可選

指定有效數字位數的整數。

返回值

表示給定數字的字串,使用給定的有效數字位數。如果指數大於或等於 precision 或小於 -6,則使用科學計數法。如果省略 precision 引數,則行為與 Number.prototype.toString() 相同。

異常

RangeError

如果 precision 不是介於 1100(含)之間,則丟擲錯誤。

TypeError

如果此方法在非 Number 物件上呼叫,則丟擲該錯誤。

示例

使用 toPrecision

js
// This number has exponent 0, so it will never use exponential notation
let num = 5.123456;

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

// This number has exponent -4, so it will never use exponential notation
num = 0.000123;

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

// This number has exponent 3, so it will use exponential notation if precision is less than 4
num = 1234.5;
console.log(num.toPrecision(1)); // '1e+3'
console.log(num.toPrecision(2)); // '1.2e+3'
console.log(num.toPrecision(6)); // '1234.50'

// This number has exponent -7, so it will always use exponential notation
num = 0.00000012345;
console.log(num.toPrecision(1)); // '1e-7'
console.log(num.toPrecision(10)); // '1.234500000e-7'

規範

規範
ECMAScript® 2026 語言規範
# sec-number.prototype.toprecision

瀏覽器相容性

另見