我有以下的测试脚本:
function test() {
var x = 0.1 * 0.2;
document.write(x);
}
test();
此代码将打印出结果0.020000000000000004
,而实际上应该只打印出0.02
(如果您使用计算器)。据我所知,这是由于浮点数乘法精度误差导致的。
有没有什么好的解决方案,以便在这种情况下我可以得到正确的结果0.02
?我知道有像toFixed
这样的函数,或者舍入可能是另一种可能性,但我想真正地将整个数字打印出来,不要进行任何切割和舍入。只是想知道您中的某个是否有一些不错、优雅的解决方案。
当然,否则我会四舍五入到大约10位。
0.1
映射为有限的二进制浮点数。 - Aaron Digulla(new Number(0.1)).valueOf()
的值为0.1
。 - Salman A