let a =69708728.37249551
console.log(a)
结果打印的是69708728.37249552
求解,有什么办法解决,让数值打印正确(69708728.37249551)
转成字符串再打印
可以使用decimal.js,可以参考下这个 http://t.csdn.cn/JXyc9
不知道你这个问题是否已经解决, 如果还没有解决的话:问题解答:
在JavaScript中,小数点后精度问题是由于浮点数的二进制表示方式导致的。浮点数在计算机内部以二进制形式表示,而二进制无法精确表示某些十进制小数。这就导致在进行一些运算时,可能会出现小数点后精度不准确的情况。
解决这个问题的方法有多种,以下是其中的一些方法:
var a = 69708728.37249551; var result = a.toFixed(8); console.log(result); // 69708728.37249551
var a = 69708728.37249551; var result = Math.round(a * 100000000) / 100000000; console.log(result); // 69708728.37249551
请注意,这两种方法都会将结果转换为字符串,如果需要将结果作为数字类型进行后续计算,可以使用parseFloat()或者Number()等函数将字符串转换为数字类型。
希望我的解答对你有所帮助,如果还有其他问题,请随时提问。