奇怪的划分0行为

时间:2017-09-26 19:40:59

标签: java floating-point

我遇到了一些来自0/0的NaN在我正在制作的系统中不是Canonical的问题,我将问题减少到了这种情况。

public class Test {
    public static void main(String[] args){
        Float zero = Float.intBitsToFloat(0);
        // Passes
        assert Float.floatToRawIntBits(zero) == Float.floatToRawIntBits(0f);
        // Fails
        assert Float.floatToRawIntBits(zero / zero) ==  Float.floatToRawIntBits(0f / 0f); 
    }
}

这对我来说很奇怪。另外,在使用Intellij进行调试时,监视表达式会像您期望的那样响应;两个断言都通过了。

我使用的是openjdk版本“1.8.0_131”。

0 个答案:

没有答案