單精度浮點數(float)與雙精度浮點數(double)的區別

【轉載】

單精度浮點數(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


發佈了25 篇原創文章 · 獲贊 22 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章