300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > float和double取值范围和精度问题

float和double取值范围和精度问题

时间:2023-12-16 22:40:20

相关推荐

float和double取值范围和精度问题

1.八种数据类型的分类如下:

第一类:整型 byte short int long

第二类:浮点型 float double

第三类:逻辑型 boolean(它只有两个值可取true false)

第四类:字符型 char

2.各种基本数据类型所占的字节:

boolean 布尔型 1/8

byte 字节类型 1

char 字符型 2一个字符能存储一个中文汉字

short 短整型 2

int 整数类型 4

float 浮点类型(单精度) 4

long 长整形 8

double 双精度类型(双精度)8

3.整型各基本数据类型的取值范围:

因为1byte = 8Byte ,(例如将3byte转化为二进制为:0000 0011 ,切记第一位为符号位,即0代表+,1代表-,剩下的七位是数据位)

所以byte取值范围是:-2^7~2^7-1,即:-128~127(因为0也包括在内,所以在正数范围是2^7-1)

同理short取值范围:-2^15~2^15-1

int取值范围:-2^31~2^31-1

long取值范围:-2^63~2^63-1

4.float和double取值范围和精度问题:

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

float:

1bit(符号位)

8bits(指数位)

23bits(尾数位)

double:

1bit(符号位)

11bits(指数位)

52bits(尾数位)

范围问题:

float的指数范围为-2^7~2^7-1(即-128~127),而double的指数范围为-2^10~2^10-1(即-1024~1023),并且指数位是补码的形式来划分的。其

中负指数决定了浮点数所能表达的绝对值最小的数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。

float的范围为-2^128 ~ +2^127

double的范围为-2^1024 ~ +2^1023

精度问题:

float和double的精度是由尾数的位数来决定的。浮点数在内存中是按科学计数法来存储的,其整数部分始终是一个隐含着的“1”,由于它是不变的

,故不能对精度造成影响

float:2^23 = 8388608,一共七位,这意味着最多能有7位有效数字,但绝对能保证的为6位,也即float的精度为6~7位有效数字;

double:2^52 = 4503599627370496,一共16位,同理,double的精度为15~16位。

---------------------

作者:兮川

来源:CSDN

原文:/zc_ad/article/details/53404087

版权声明:本文为博主原创文章,转载请附上博文链接!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。