1. 程式人生 > >32位float和double能表示的十進位制有效數字

32位float和double能表示的十進位制有效數字

一個浮點數由三部分組成:符號位S、指數部分E(階碼)以及尾數部分M。 

單精度浮點數(float)總共用32位來表示浮點數,其中尾數用23位儲存,加上小數點前有一位隱藏的1(IEEE754規約數表示法),2^(23+1) = 16777216。因為 10^7 < 16777216 < 10^8,所以說單精度浮點數的有效位數是7位。考慮到第7位可能的四捨五入問題,所以單精度最少有6位有效數字(最小尺寸)。  

同樣地:雙精度浮點數(double)總共用64位來表示浮點數,其中尾數用52位儲存,  2^(52+1) = 9007199254740992,10^16 < 9007199254740992 < 10^17,所以雙精度的有效位數是16位。同樣四捨五入,最少15位。