下面我試圖指定value
的最大值,然後向其添加可能的最小正值Double
值。Java 6 - 創建並檢測Long.MAX_VALUE以上的第一個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
聲明未能檢測到這一點?
真誠的感謝。
如果你想要下一個更高的double值,可以使用Math.nextUp((double)Long.MAX_VALUE)。 –