number.toPrecision
number.toPrecision
toPrecision()
方法以指定的精度返回该数值对象的字符串表示。
语法
numObj.toPrecision([precision])
参数
precision可选。一个用来指定有效数个数的整数。
返回值
以定点表示法或指数表示法表示的一个数值对象的字符串表示,四舍五入到 precision
参数指定的显示数字位数。查看Number.prototype.toFixed()
方法关于四舍五入的讨论,同样应用于 toPrecision
方法。
如果忽略 precision
参数,则该方法表现类似于Number.prototype.toString()
。如果该参数是一个非整数值,将会向下舍入到最接近的整数。
异常
RangeError
如果precison
参数不在 1 和 100 (包括)之间,将会抛出一个RangeError
。执行环境也可以支持更大或更小的范围。ECMA-262 只需要最多 21 位显示数字。
示例
使用toPrecision
var 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'
规范
Specification | Status | Comment |
---|---|---|
ECMAScript 3rd Edition (ECMA-262) | Standard | Initial definition. Implemented in JavaScript 1.5. |
ECMAScript 5.1 (ECMA-262)The definition of 'Number.prototype.toPrecision' in that specification. | Standard | |
ECMAScript 2015 (6th Edition, ECMA-262)The definition of 'Number.prototype.toPrecision' in that specification. | Standard | |
ECMAScript Latest Draft (ECMA-262)The definition of 'Number.prototype.toPrecision' in that specification. | Draft | |
浏览器兼容性
Feature | Chrome | Firefox | Edge | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |
Feature | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
Basic Support | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) | (Yes) |