偶然想使用这个工具,但发现找不到原生的,只好自己弄一个。
官方精确数字到百分位倒是有,不过是四舍五入版,只需简单使用“str.toFixed(x)”即可.括号内的数字x表示保留的位数.如果是整数,就会不上0,特别注意:这方法返回的是String,如若要拿去运算必须使用parseInt()转换类型再操作。
但是这个方法并不是我想要的,我想要的是对结果不四舍五入,来获得一个精确到百分位的数字。也就是所谓的截小数点后位数2.
首先我建一个工具类
const method = {
//精确到百分位(不四舍五入版)
accurate2hundredth: function (num) {
var p = num.toString().indexOf('.');
//另一种写法//('' + num).indexOf('.')
var r = 0;
if (p > 0) {
r = ('' + num).substring(0, p + 3);
//另一种写法//num.toString().substring(0, p+3);
}
else {
r = num + '.00';
}
return r;
},
}
module.exports = method
这样就ok了
注意: 在普通时候num.indexOf('.');或许可行,但一旦涉及计算了,务必将num值转化为string。
为了防止意外 .substring()和.indexOf('.')前面必须要
num.toString().
或者
(' ' + num).