素材巴巴 > 程序开发 >

Java 浮点数 float和double类型的表示范围和精度

程序开发 2023-09-14 16:26:27

隐约记得,浮点数判断大小好像有陷阱,因为底层的二进制数不能精确表示所有的小数。有时候会产生让人觉得莫名其妙的事情。

如在java中,  

        0.99999999f==1f //true 

        0.9f==1f //false

要明白这些,首先要搞清楚float和double在内存结构


1、内存结构

float和double的范围是由指数的位数来决定的。
float的指数位有8位,而double的指数位有11位,分布如下:

float类型的存储方式


标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。