Number.prototype.toPrecision()

概述

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

语法

numObj.toPrecision(precision)

参数

precision 可选

一个用来指定有效数个数的整数。

返回值

以定点表示法或指数表示法表示的一个数值对象的字符串表示,四舍五入到 precision 参数指定的显示数字位数。查看 Number.prototype.toFixed() 方法关于四舍五入的讨论,同样应用于 toPrecision 方法。

如果忽略 precision 参数,则该方法表现类似于 Number.prototype.toString()。如果该参数是一个非整数值,将会向下舍入到最接近的整数。

异常

RangeError

如果 precison 参数不在 1 和 100(包括)之间,将会抛出一个 RangeError 。执行环境也可以支持更大或更小的范围。ECMA-262 只需要最多 21 位显示数字。

示例

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

相关链接