Java 6 - 创建并检测Float.MAX_VALUE之上的第一个Double值 [英] Java 6 - Creating and detecting the first Double value above Float.MAX_VALUE
本文介绍了Java 6 - 创建并检测Float.MAX_VALUE之上的第一个Double值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想创建价值最接近但大于$ code> Float.MAX_VALUE 的 Double
。
I would like to create the Double
whose value is closest to, but greater than, Float.MAX_VALUE
.
我刚刚写了一个与此相似的问题,但对于 Double
和 Long。 MAX_VALUE
,请参阅这里。
I've just written a question similar to this but for Double
and Long.MAX_VALUE
, see here.
如何重复 Double
和 Float.MAX_VALUE
使用标准的Java 6 API?
How can I repeat the conversion for Double
and Float.MAX_VALUE
using the standard Java 6 API?
我的尝试在下面,但似乎是错误的:
My attempt is below, but is incorrect it seems:
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.
}
真诚的感谢。
推荐答案
Math.nextUp((double) Float.MAX_VALUE);
它不仅等同于最有效的解决方案,但...它使得它显然是什么结果你应该期待。
It's not only equivalent to the most efficient solution, but...it makes it pretty obvious what result you should expect.
这篇关于Java 6 - 创建并检测Float.MAX_VALUE之上的第一个Double值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文