float和double的区别
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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。
参考技术A %f和%lf分别是float类型和double类型用于格式化输入输出时对应的格式符号。所以改成float之后还得把lf改为f 参考技术B double的精度更高!追问那也不至于输不出啊,最后显示的是变量未被初始化,就很迷。我只改了一个变量类型,结果就不一样了。
追答输出应该是%lf
控制符%f表示将一个单精度小数输入输出,它是输入输出float变量的最标准格式,%lf则是输入输出双精度小数(即double型变量)。
FLOAT 和 DOUBLE区别
以下是 FLOAT 和 DOUBLE 的区别:
float : 单精度浮点数
double : 双精度浮点数
·浮点数以 8 位精度存储在 FLOAT 中,并且有四个字节。
·浮点数存储在 DOUBLE 中,精度为 18 位,有八个字节。
一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快,尽量使用单精度浮点数float
以上是关于float和double的区别的主要内容,如果未能解决你的问题,请参考以下文章