【问题标题】:Javascript gives wrong result for 0.6 / 0.2 = 2.9999999999999996 instead of 3 [duplicate]Javascript为0.6 / 0.2 = 2.9999999999999996而不是3给出错误结果[重复]
【发布时间】:2014-03-04 12:50:45
【问题描述】:

为什么 0.6 / 0.2 = 2.9999999999999996 的“除”算术计算给出了 javascript 函数,而不是 3

【问题讨论】:

标签: javascript


【解决方案1】:

因为在二进制中,0.6 不完全是 0.6,而0.2 也不完全是 0.2

“不完全是 0.6”/“不完全是 0.2”=“不完全是 3”


在计算机中,所有数字都以二进制表示。当你写0.6时,电脑实际上存储了……

1/2 + 1/16 + 1/32 + 1/256 + ...

0.2 类似:

1/8 + 1/16 + 1/128 + 1/256 + ...

因此,您得到的结果类似于对所有这些项目进行搜索,得出的结果与3 几乎但不完全不同。

仅在可能的情况下考虑使用整数。


进一步编辑:您实际上可以在浏览器的控制台中观察到这一点。

你看到了吗?除法的结果非常接近,但不完全是预期的答案。

【讨论】:

    猜你喜欢
    • 2015-05-10
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2018-06-04
    • 1970-01-01
    • 2019-05-17
    • 1970-01-01
    相关资源
    最近更新 更多