最近我用Java写了一个项目,发现了一个非常奇怪的特性,那就是Java中的double/Double实现。Java中的double类型有两个0,即0.0和-0.0(有符号的零)。奇怪的是:
0.0 == -0.0的结果是true,但是:
0.0 == -0.0
true
new Double(0.0).equals(new Double(-0.0))的结果是false。有人知道背后的原因吗?
new Double(0.0).equals(new Double(-0.0))
false
用户名或邮箱地址
密码