1樓:匿名使用者
它是說保證7位準確,並不是說第8位就肯定不準確。
2樓:
type exponent length mantissa length
float 8 bits 23 bits
浮點數的有效位:23bits,合24位
其解析度為:1/(2^24)=0.000,000,059,604644775390625
=0.000,000,06
即浮點數可表示的最小數的單位為0.000000059604644775390625;
其他的數都由0.000000059604644775390625 * 2^x來表示的,
12345678920
12345678900
000000059604644775390625
=12345678848
12345678848=0.000000059604644775390625 * 2^x
具體計算略,原理如此
3樓:匿名使用者
因為計算機儲存浮點數時,是把數看作a*2^b這樣的形式,不是以10為底數,而是以2為底數。即將數轉換成以2為底的「科學計數法」的形式,再由這個形式反轉換成10進位制形式,但資料又有位數限制,所以有些數轉換成二進位制計數法形式後位數超出了限制的位數,那麼轉換回來時得到的數就會與原數有偏差,不同的數這個偏差是不同的,有可能在小數點後第7位,也有可能在第8位,也有可能在其他位數,但能保證第6位之前是正確的。
c語言中,float型別的有效位數不是7位,double的有效位數不是16位嗎?為什麼這個輸出結果 50
4樓:匿名使用者
這個有效位是指小數點後的位數
5樓:匿名使用者
建議搜尋一下 ieee754 看看浮點數的詳細定義。
C語言中如何實現將浮點數float轉成int型別
強制型別轉換 比如 float a 10.5 int b int a 這樣 就轉換了,但是不推薦高精度轉低精度 會丟失精度的就像這個,a是10.5 轉換後變成10了小了太多 c語言中將一個浮點型賦值給整型時,會不會四捨五入?c語言中將一個浮點型賦值給整型時,不會四捨五入,會直接捨去小數部分的資料,也...
C語言中fabs的用法,關於c語言中fabs函式的用法
要包含一個標頭檔案 include,沒有這個標頭檔案是不能使用fabs函式的。加上 include這個標頭檔案 fabs函式是一個求絕對值的函式,求出x的絕對值,和數學上的概念相同,函式原型是extern float fabs float x 用法是 include fabs 函式的宣告 doubl...
C語言中函式宣告的位置有幾種,在C語言中,函式定義跟函式宣告有什麼區別有什麼不同之出?
1.把子函式放主函式main函式外並且是之前定義,無需宣告。2.如果你把子函式放到main函式外,則必須在定義的時候先宣告。3.如果把 子函式放在main函式中就不需要提前宣告瞭。首先,你提的問題就有問題。c是一門程式語言,函式是在源 裡面宣告的。所以你該問在c語言編寫的源 裡,函式宣告的位置有幾種...