单精度浮点数(float)与双精度浮点数(double)的区别如下:
(1)在内存中占有的字节数不同
•单精度浮点数在机内占4个字节
•双精度浮点数在机内占8个字节
(2)有效数字位数不同
•单精度浮点数有效数字8位
•双精度浮点数有效数字16位
(3)所能表示数的范围不同
•单精度浮点的表示范围:-3.40E+38 ~ +3.40E+38
•双精度浮点的表示范围:-1.79E+308 ~ +1.79E+308
(4)在程序中处理速度不同
一般来说,CPU处理单精度浮点数的速度比处理双精度浮点数快
例如:
- #include <stdio.h>
- void main()
- {
- float a=0.12345678901234567890;
- double b=0.12345678901234567890;
- printf("a=%.30f\n",a);
- printf("b=%.30lf\n",b);
- }
-
- 输出结果:
- a=0.123456791043281560000000000000
- b=0.123456789012345680000000000000
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)