上篇文章只是简单介绍了 toFixed 方法,抽时间把 Number 里的一些方法又看了一下,其中有个方法引起我的注意:
Number.prototype.toPrecision()
precision 为"精度"的意思,貌似这个方法更符合上一篇文章所说的功能。可是事情并没有像我想象的一样,先看官方定义:
A string representing a Number object in fixed-point or exponential notation rounded to precision significant digits
大意:
返回一个定点和指数表示的同时四舍五入到指定位数的字符串。
再看一下使用方法,同时会总结出一些要点:
let PI = 3.1415926
console.log(PI.toPrecision(6)) // 3.14159
console.log(PI.toPrecision(4)) // 3.142
console.log(PI.toPrecision(2)) // 3.1
1.按指定的数字截取数字位数,同时四舍五入。
let 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'
2.没有传入参数时,返回数字的字符串形式,3.截取的位置从左边第一个非0的数字开始算起,不足补0。
let numObj = 12345.6
numObj.toPrecision(2) // '1.2e+4'
4.当传入的参数小于数字的整数位时,返回指数形式标识的字符串。
此方法用下来并没有达到我直觉认为的那样,这在一些金钱格式化上还不是很好用。
网友评论