float和double的区别

double和float不是在字节上有区别吗。但为什么我把double改成float,这个程序就运行的有问题了,显示的是a , b没被赋值成功。为什么? 

1、指标范围不同

float 的索引范围是-127~128。

double和double的指数范围是-1023~1024

2、表达指数不同

float 的表达式为 1bit(符号位)+ 8bits(指数位)+ 23bits(尾数位)

double的表达式为1bit(符号位)+11bits(指数位)+52bits(尾数位)

3、有效位数不同

Float 只能提供七位有效数字。

Double 可以提供 16 位有效数字。

4、占用内存空间不同

Float 占用 4 字节(32 位)内存空间,取值范围为 3.4E-38~3.4E+38。

double 占用 8 字节(64 位)内存空间,取值范围为 1.7E-308~1.7E+308。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-05
%f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。所以改成float之后还得把lf改为f本回答被网友采纳
第2个回答  2019-04-05
double的精度更高!追问

那也不至于输不出啊,最后显示的是变量未被初始化,就很迷。我只改了一个变量类型,结果就不一样了。

追答

输出应该是%lf

控制符%f表示将一个单精度小数输入输出,它是输入输出float变量的最标准格式,%lf则是输入输出双精度小数(即double型变量)。

相似回答