标签: php javascript programming-languages
可能重复: Is JavaScript's Math broken?
If(0.3-0.2==0.2-0.1)大多数编程语言显示结果false。所以我想知道哪个语言支持此语句true以及为什么大多数语言显示false。
If(0.3-0.2==0.2-0.1)
false
true
在Javascript和PHP中进行了测试。为什么会这样?
Javascript
PHP
答案 0 :(得分:4)
发生这种情况的原因不是必须使用语言本身,而是实现。这个问题的答案是,当你写If(0.3-0.2==0.2-0.1)时,你认为所执行的操作是有理的,这是错误的,它们确实是浮点运算。实际上,在浮点运算中,这个是 false!所以答案是:任何默认用于在任意精确算术中解释常数的语言。 (例如,如果这些是使用Rational编号在Haskell中编写的,则测试将“有效”。)为了完整性:Racket语言执行此操作。