Java中NaN数学的规则

时间:2014-09-22 22:12:22

标签: java nan

我期待Double.NaN - Double.NaN等于0,但它不是。

有人可以解释发生了什么吗? 在NaN上做数学时有哪些经验法则? 它是否类似“如果任何sub-expr是NaN,则整个expr是NaN”?

感谢,

1 个答案:

答案 0 :(得分:6)

NaN代表非数字,这就是NaN - NaN = NaN的原因。想象一下这样的事情:

"foo" - "bar" = ??? <-- What should be the output?

或者

"foo" - (new Object()) = ??? <-- none of them are numbers

关于此的更多数学例子:

0 / 0 = NaN <-- Mathematically we don't know the exact result

所以,有这样的事情:

0 / 0 - 0 / 0 = NaN

更多信息: