Java 6 - 创建并检测Float.MAX_VALUE之上的第一个Double值 [英] Java 6 - Creating and detecting the first Double value above Float.MAX_VALUE

查看:90
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆