Javascript 浮点减法

新手上路,请多包涵

我想知道如何在 javascript 中减去两个负浮点数。我试过了:

 alert(-0.2-0.1);

结果是 -0.30000000000000004 。难道我做错了什么?我需要做什么才能获得 -0.3

原文由 Teneff 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 290
2 个回答

不,你的代码没有问题,大多数小数不能用二进制精确表示,使用

number.toFixed(x)

其中 x 是你想要的小数位数, number 是减法的结果。

原文由 Alberto Zaccagni 发布,翻译遵循 CC BY-SA 3.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 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏