float 與double 的區別

2021-06-28 13:42:07 字數 1112 閱讀 5344

float 與double  都是浮點數,浮點數有兩種表示形式:

(1)十進位制小數形式。例如:0.123,123.0,等,注意:必須有小數點。

(2)指數形式。如123e3或123e3都代表123*10^3。注意e或e之前必須有數字,而且e後面的指數必須為整數。

乙個浮點數有多種指數表示形式,例如123.456:123.456e0,12.3456e1,1.23456e2等,其中1.23456e2成為"規範化的指數形式"。

即在字母e之前的小數部分中,小數點左邊有一位且僅有一位非零的數字。

浮點型資料在記憶體中的存放形式:

浮點型資料在記憶體中是按照指數形式儲存的,系統把乙個浮點型資料分成小數部分和指數部分,分別存放。指數部分採用規範化的指數形式。

實數3.14159在記憶體中的存放形式: +

.314159

1其中 + 為數符,.314159為小數部分,10^1為指數 —>3.14159

這裡方便理解使用十進位制表示,實際上計算機是用二進位制數來表示小數部分以及用2的冪次來表示指數部分的。

小數部分占得位(bit)越多,數的有效數字越多,精度越高。指數部分占得位數越多,則表示的數值範圍越大。

浮點型變數 分為:float , double 和 long double 型別

位元(位)數

有效數字

數值範圍

float

32(4位元組)

6~7-[3.4*10^(-38)]~3.4*10^38

double

6415~16

-[1.7*10^(-308)]~1.7*10^308

long double

12818~19

-[1.2*10^(-4932)]~1.2*10^4932

型別位元(位)數

有效數字

數值範圍

float

32(4位元組)

6~7-[3.4*10^(-38)]~3.4*10^38

double

6415~16

-[1.7*10^(-308)]~1.7*10^308

long double

12818~19

-[1.2*10^(-4932)]~1.2*10^4932

double與float的區別

單精度浮點數在機內佔4個位元組,用32位二進位制描述。雙精度浮點數在機內佔8個位元組,用64位二進位制描述。浮點數在機內用指數型式表示,分解為 數符,尾數,指數符,指數四部分。數符佔1位二進位制,表示數的正負。指數符佔1位二進位制,表示指數的正負。尾數表示浮點數有效數字,0.x,但不存開頭的0和點 ...

關於float與double區別

problem a 啤酒和飲料 time limit 1 sec memory limit 128 mb submit 175 solved 29 submit status web board description 啤酒每罐2.3元,飲料每罐1.9元。小明買了若干啤酒和飲料,一共花了s元。我們還...

JAVA中float與double的區別

float是單精度型別,精度是6位有效數字,取值範圍是10的 38次方到10的38次方,float占用4個位元組的儲存空間 double是雙精度型別,精度是15位有效數字,取值範圍是10的 308次方到10的308次方,double占用8個位元組的儲存空間 當你不宣告的時候,預設小數都用double...