下面我尝试分配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声明无法检测到这一点吗?
真诚的感谢。