我想知道如何在 javascript 中减去两个负浮点数。我试过了:
alert(-0.2-0.1);
结果是 -0.30000000000000004
。难道我做错了什么?我需要做什么才能获得 -0.3
?
原文由 Teneff 发布,翻译遵循 CC BY-SA 4.0 许可协议
我想知道如何在 javascript 中减去两个负浮点数。我试过了:
alert(-0.2-0.1);
结果是 -0.30000000000000004
。难道我做错了什么?我需要做什么才能获得 -0.3
?
原文由 Teneff 发布,翻译遵循 CC BY-SA 4.0 许可协议
另一个可能的解决方案可能是这样的:
Number((-0.2-0.1).toFixed(x))
其中 x 应该是您想要的小数公差。
使用 x
16 运行此程序,输出为 -0.3
。
-0.3 === Number((-0.2-0.1).toFixed(16)) // true, and also with every 0 < x < 16
让我知道。
原文由 Cristian Douce 发布,翻译遵循 CC BY-SA 3.0 许可协议
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
6 回答821 阅读✓ 已解决
6 回答1k 阅读
2 回答1.3k 阅读✓ 已解决
不,你的代码没有问题,大多数小数不能用二进制精确表示,使用
其中
x
是你想要的小数位数,number
是减法的结果。