【轉載】
單精度浮點數(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
實型數據在計算機中的存儲方式,可參見:
http://www.cnblogs.com/jillzhang/archive/2007/06/24/793901.html