float与double的区别,以及float为什么要加f

单精度浮点数(float)与双精度浮点数(double)的区别如下:

(1)在内存中占有的字节数不同

单精度浮点数(float)在机内占4个字节

双精度浮点数(double)在机内占8个字节

(2)有效数字位数不同

单精度浮点数(float)有效数字8位

双精度浮点数(double)有效数字16位

(3)所能表示数的范围不同

单精度浮点(float)的表示范围:-3.40E+38 ~ +3.40E+38

双精度浮点(double)的表示范围:-1.79E+308 ~ +1.79E+308

(4)在程序中处理速度不同
一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快

至于要加F是因为就是这么规定的……如果不加F的话他会认为你是用的Double型……

比如:编译器在编译的时候扫描到了一个25.6,在不带f的情况下,它会判断这是double类型,应该创建一个8个字节的空间来存放,从而可能会出现损失精度的问题;带上f,编译器就会创建一个4字节的空间来存放。float不能像整形那样有时会默认转换,必须要确定类型,带上f。

猜你喜欢

转载自blog.csdn.net/qq784515681/article/details/79415652