下面我尝试分配value
最大值Long
,然后添加可能的最小正值Double
。
然后我尝试检测该值是否大于最大值Long
。
Double value = new Long(Long.MAX_VALUE).doubleValue();
value += Double.MIN_VALUE;
if (value < -(new Long(Long.MAX_VALUE).doubleValue()) || value > new Long(Long.MAX_VALUE).doubleValue()) {
// Expecting code here to execute, but it doesn't.
}
研究所涉及的值表明,value
最终值为
9.223372036854776E18
= 9223372036854776000
虽然Long.MAX_VALUE
有价值
9223372036854775807
比较这些显示,value
如预期的那样更大:
9223372036854776000 (value)
9223372036854775807 (Long.MAX_VALUE)
有人可以解释为什么该if
声明无法检测到这一点吗?
真诚的感谢。