float的范围和有效位「建议收藏」

float的范围和有效位「建议收藏」float的范围和有效位float范围是3.4E-38——3.4E+38,可提供7位有效数字。上述这两个量都是近似值,各个编译器不太一样的。下面我就将标准值是怎么定义的,和你说一下:这个比较复杂,建议你找一下IEEE754标准看一下。这个简单说一下吧:在IEEE754标准中进行了单精度浮点数(float)和双精度数浮点数(double)的定义。float有32bit,double有64bit。它们的构成包括符号位、指数位和尾数位。这些位的构成如下:种类-符号位…

大家好,欢迎来到IT知识分享网。

float的范围和有效位

float 范围是3.4E-38 ——3.4E+38,可提供7位有效数字。 
上述这两个量都是近似值,各个编译器不太一样的。 

下面我就将标准值是怎么定义的,和你说一下: 
这个比较复杂,建议你找一下IEEE754标准看一下。 
这个简单说一下吧: 
在IEEE754标准中进行了单精度浮点数(float)和双精度数浮点数(double)的定义。float有32bit,double有64bit。它们的构成包括符号位、指数位和尾数位。 
这些位的构成如下: 
种类——-符号位————-指数位—————-尾数位—- 
float—第31位(占1bit)—第30-23位(占8bit)—-第22-0位(占23bit) 8388607.0
double–第63位(占1bit)—第62-52位(占11bit)—第51-0位(占52bit) 

取值范围主要看指数部分: 
float的指数部分有8bit(2^8),由于是有符号型,所以得到对应的指数范围-128~128。 
double的指数部分有11bit(2^11),由于是有符号型,所以得到对应的指数范围-1024~1024。 
由于float的指数部分对应的指数范围为-128~128,所以取值范围为: 
-2^128到2^128,约等于-3.4E38 — +3.4E38 

精度(有效数字)主要看尾数位: 
float的尾数位是23bit,对应7~8位十进制数,所以有效数字有的编译器是7位,也有的是8位

 

也就是说:

Float f = 100000000f;

Float f2 = 100000001f;

二者的精度是一样的,超过了表示范围所以后续即便f++ 也不能有实质性的增加

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/25198.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信