我想创建 Double
,其值最接近但大于 Float.MAX_VALUE
。
我刚刚写了一个与此类似的问题,但对于 Double
和 Long.MAX_VALUE
,请参阅 here .
如何使用标准 Java 6 API 重复 Double
和 Float.MAX_VALUE
的转换?
我的尝试如下,但似乎不正确:
Long longValue = Long.valueOf(Float.floatToIntBits(Float.MAX_VALUE));
Double value = Double.longBitsToDouble(Double.doubleToLongBits(longValue)+1);
if (value < -Float.MAX_VALUE || value > Float.MAX_VALUE) {
// Code here should execute but does not.
}
真诚的感谢。
最佳答案
Double val = (double)Float.MAX_VALUE;
val += Math.ulp(val);
这也可能有效(更正您的示例),但不完全确定:
Double val = Double.longBitsToDouble(Double.doubleToLongBits(Float.MAX_VALUE)+1);
关于Java 6 - 创建并检测第一个高于 Float.MAX_VALUE 的 Double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12356793/