首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Java中浮点数的最大值是什么?

Java中浮点数的最大值是什么?
EN

Stack Overflow用户
提问于 2011-08-16 06:17:12
回答 5查看 96.1K关注 0票数 30

下面的question表示Double的最小值为-Double.MAX_VALUE。对于Float (即-Float.MAX_VALUE)也是这样吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-08-16 06:19:54

是的,-Float.MAX_VALUE是幅度最大的负数。float的表示方式与double相同,只有一半的存储空间(以及相应的精度损失)。由于IEEE754中的符号由单个比特表示,因此翻转该比特不会改变其余比特可达到的总幅度。

票数 29
EN

Stack Overflow用户

发布于 2011-08-16 06:22:05

是的-除了符号位被翻转外,它与Float.MAX_VALUE相同的位模式...这是另一种获取值的方法:

public class Test {
    public static void main(String[] args) {
        // Float.MAX_VALUE is intBitsToFloat(0x7f7fffff)
        // so we set the most significant bit - the sign bit
        float f = Float.intBitsToFloat((int) 0xff7fffff);
        System.out.println(f == -Float.MAX_VALUE); // true
    }
}
票数 18
EN

Stack Overflow用户

发布于 2016-06-24 01:49:18

编辑:我的原始答案似乎是严重错误的。谢谢你@aioobe指出这一点。

相反,使用java代码的魔力来回答标题问题:

System.out.printf( "Float.MAX_VALUE: %,f\n", Float.MAX_VALUE );

340,282,346,638,528,860,000,000,000,000,000,000,000.000000 :Float.MAX_VALUE

System.out.printf("in scientific notation: %.18g\n", Float.MAX_VALUE );

在科学表示法中: 3.40282346638528860e+38

System.out.printf(
            "in hexadecimal floating-point number with a significand and "
            + "an exponent: %a", Float.MAX_VALUE );

十六进制浮点数,带有效数和指数: 0x1.fffffep127

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7071457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档