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的区别的主要内容,如果未能解决你的问题,请参考以下文章

float和double有啥区别?

float和double的区别

FLOAT 和 DOUBLE区别

float和double的区别

MySQL中Decimal类型和Float Double的区别

MySQL:float 和 double 有啥区别?