Ten*_*eff 15 javascript floating-point
我想知道如何在javascript中减去两个负浮点数.我试过了:
alert(-0.2-0.1);
Run Code Online (Sandbox Code Playgroud)
结果是-0.30000000000000004.难道我做错了什么?我该怎么做-0.3?
Alb*_*gni 20
不,你的代码没有错,大多数小数部分不能用二进制表示,使用
number.toFixed(x)
Run Code Online (Sandbox Code Playgroud)
x您想要的小数位数在哪里,是number减法的结果.
另一种可能的解决方案可能是这样的:
Number((-0.2-0.1).toFixed(x))
Run Code Online (Sandbox Code Playgroud)
其中 x 应该是您想要的小数公差。
使用x16 运行此程序,得到的输出为-0.3.
-0.3 === Number((-0.2-0.1).toFixed(16)) // true, and also with every 0 < x < 16
Run Code Online (Sandbox Code Playgroud)
让我知道。