C语言中什么时候用float定义,什么时候用double定义

如题所述

根据需要定义,一般反正定义double的比较多。
float和double的范围是由指数的位数来决定的。
float的指数位有8位,而double的指数位有11位,分布如下:
float:
1bit(符号位)
8bits(指数位)
23bits(尾数位)
double:
1bit(符号位)
11bits(指数位)
52bits(尾数位)
于是,float的指数范围为-127~+128,而double的指数范围为-1023~+1024,并且指数位是按补码的形式来划分的。
其中负指数决定了浮点数所能表达的绝对值最小的非零数;而正指数决定了浮点数所能表达的绝对值最大的数,也即决定了浮点数的取值范围。
float的范围为-2^128
~
+2^128,也即-3.40E+38
~
+3.40E+38;double的范围为-2^1024
~
+2^1024,也即-1.79E+308
~
+1.79E+308。
常用数据类型有以下几种(32位机):
char
1字节
short
2字节
int
4字节
long
4字节
long
long
8字节
float
4字节
double
5字节
long
double
12字节
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-05-26
float和double均为浮点型数据类型,二者均用于小数表示中,仅在所能表示数的范围上和精度上有所不同:
float所能表示数的范围为-2^128
~
+2^128,能保证6~7位精确的有效数字
double所能表示数的范围为-2^1024
~
+2^1024,能保证15~16位有效数字
因此,如果变量的绝对值不是很大,且需要的精度不是很高,可以选用float类型,反之则选用double类型。
相似回答