此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Number.prototype.toPrecision()

基线 广泛可用

自 2015年7月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

>

Number 值的 toPrecision() 方法返回一个以指定精度表示该数字的字符串。

尝试一下

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 可选

一个指定有效位数的整数。

返回值

一个以定点表示法或指数表示法表示 Number 对象的字符串,该字符串四舍五入到 precision 个有效数字。有关四舍五入的讨论,请参阅 Number.prototype.toFixed() 方法的描述,其也适用于 toPrecision()

如果 precision 参数被省略,则与 Number.prototype.toString() 行为相同。如果 precision 参数不是整数,则将其四舍五入到最近的整数。

异常

RangeError

如果 precision 不在 1100 之间(包含两端),则抛出该错误。

示例

>

使用 toPrecision

js
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'

规范

规范
ECMAScript® 2027 Language Specification>
# sec-number.prototype.toprecision>

浏览器兼容性

参见