首页 > 编程知识 正文

javafloat比较(JAVAfloat)

时间:2023-05-05 07:58:17 阅读:77156 作者:1214

从表面看,lang(64位浮点) (32位)看起来就像lang的容量大于浮点一样。 这样,由于Lang可以隐式转换为float,因此只能强制将float转换为Lang。

从表象来看显然很奇怪。 因为java是这样说类型转换的:

那么,需要详细分析lang和float的容量。 lang:8 :除8字节、64位和1位符号位外,剩下的尾数为63位,其范围在() 2的63次方之间

float符合IEEE 754标准,且是在32个四字节中的一个比特的已编码比特、8比特的指数比特和23比特的尾数比特

那么,浮动的范围如何呢? 先说结论,在2**-128到2**127之间

到此为止,作为理解已经足够了,但是关于浮动范围的确定,我觉得很多伙伴很容易记住。 以下也有folat的最大最小:

最大值为符号位正,即0,尾数全1,指数11111110 (指数全1有特殊用途所以不取) ) )。

指数旋转十进制-127 (偏移)=127

那么最大值

1.11111111111111111111111111 x2 * * 127

该值为34028234638528859811704183483484516925440,通常表示为3.4028235E38

同样,浮点表示最小值。 最大值的符号位置1取负就可以了

那么浮动的范围是

[-3.4028235 e38,3.4028235 e38 ]另外:

关于float的精度和范围的问题推荐这篇博文

浮动精度和可能的值范围

关于Float.MIN_VALUE和Float.MAX_VALUE

Float.MAX_VALUE是最大值

Float.MIN_VALUE呢? 一开始我以为Float.MIN_VALUE是float类型的最小值,其实完全不是。 应该称为浮点类型可以表达的最小精度,实际定义如下。

` ` ` Java

publicstaticfinalfloatmin _ value=1.40129846432481707 e-45f;

``````

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。