由于计算机的二进制实现和位数限制有些数无法有限表示 所以有些数没有正确显示 所以造成精度出现问题 比如0.1+0.2
这个是计算机的一个问题 我们无能为力 但是我们可以使用语言我们的语言来修复这个问题
废话少说 直接上方法
function fixJindu(input) { var isZheng = 1;//用于最后判断数据的正负 if (input * 1 >= 0) { isZheng = 1; } else { isZheng = -1; } input = Math.abs(input * 1); var toFixed = function (num, s) { var times = Math.pow(10, s); var des = num * times + 0.5; des = parseInt(des, 10) / times; return des * isZheng + '' }; return toFixed(input, 5); };
看效果如下