Java中Float和Double的精度问题

上篇博客我查看了下byte、char、short的取值范围,于是我今天打开编译器又想起来看看Float和Double的取值范围

System.out.println(Float.MIN_VALUE + " " + Float.MAX_VALUE);
System.out.println(Double.MIN_VALUE + " " + Double.MAX_VALUE);

输出如下:
image.png
这很奇怪,为什么他们的最小值都是正数?

于是我上Stack OverFlow查了一下:
Float.MIN_VALUE问题地址
Double.MIN_VALUE问题地址

根据javadoc for Floatjavadoc for Double中的定义,Float.MIN_VALUE是保持float类型的最小正非零数,值为2^-149; Double.MIN_VALUE是保持double类型的最小正非零数,值为2^-1074.

貌似超链接访问失败,在此贴上问题地址和javadoc地址:
https://stackoverflow.com/questions/11419797/why-is-float-min-value-in-java-a-positive-value
https://stackoverflow.com/questions/5709073/is-double-min-value-is-greater-than-zero-in-java
https://docs.oracle.com/javase/8/docs/api/java/lang/Float.html#MIN_VALUE
https://docs.oracle.com/javase/8/docs/api/java/lang/Double.html#MIN_VALUE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值