现象:
就是类似81.6+1.6 相加,结果会变成
83.19999999999999,不等于83.2
整数变成了999999***或者0000000***3
81.6和1.6都是Number类型的。
试了1到100的,有的有此情况有的没有。
暂时简单的规避解决方法:
四舍五入保留n位小数,处理结果值。
function toDecimal(v,num,isZeroFill) {
var f = parseFloat(v);
if (isNaN(f)) {
return false;
}
f = Math.round(v*(Math.pow(10,num)))/Math.pow(10,num);
var s = f.toString();
if(isZeroFill !== false){
var rs = s.indexOf('.');
if (num>0 && rs < 0) {
rs = s.length;
s += '.';
}
while (s.length <= rs + num) {
s += '0';