程式設計 float詳解

2021-07-04 14:40:11 字數 1219 閱讀 8535

float型別的表現形式:

預設情況下,賦值運算子右側的實數被視為 double。 因此,應使用字尾 f 或 f 初始化浮點型變數,如以下示例中所示:

float x = 3.5f;

如果在以上宣告中不使用字尾,則會因為您嘗試將乙個 double值儲存到 float 變數中而發生編譯錯誤。

float的取值範圍

float占用4個位元組,和int是一樣,也就是32bit.

1bit(符號位) 8bits(指數字) 23bits(尾數字)

儲存方式如下圖:

取值範圍基本表達法

(浮點)數值 = 尾數 × 底數 ^ 指數,(附加正負號)

float的範圍為-2^128 ~ +2^128,也即-3.40e+38 ~ +3.40e+38;double的範圍為-2^1024 ~ +2^1024,也即-1.79e+308 ~ +1.79e+308

精度

float:2^23 = 8388608,一共七位,這意味著最多能有7位有效數字,但絕對能保證的為6位,也即float的精度為6~7位有效數字;

(浮點)數值 =      尾數    ×    底數 ^ 指數,(附加正負號)

十進位制小數如何轉化為二進位制數

演算法是乘以2直到沒有了小數為止。舉個例子,0.9表示成二進位制數

0.9*2=1.8   取整數部分 1

0.8(1.8的小數部分)*2=1.6    取整數部分 1

0.6*2=1.2   取整數部分 1

0.2*2=0.4   取整數部分 0

0.4*2=0.8   取整數部分 0

0.8*2=1.6 取整數部分 1

0.6*2=1.2   取整數部分 0

.........      0.9二進位制表示為(從上往下): 1100100100100......

注意:上面的計算過程迴圈了,也就是說*2永遠不可能消滅小數部分,這樣演算法將無限下去。很顯然,小數的二進位制表示有時是不可能精確的

。其實道理很簡單,十進位制系統中能不能準確表示出1/3呢?同樣二進位制系統也無法準確表示1/10。這也就解釋了為什麼浮點型減法出現了"減不盡"的精度丟失問題。

float詳解 聖杯布局

雖然現在有了flex彈性盒子模型,很多布局效果都可以通過flex盒子來實現,但由於flex盒子模型的相容性不容樂觀 ie至少要10才能支援flex,所以還是很有必要學習float流式布局的 正常的塊級元素的布局是這樣的 文字代表元素的float屬性 對於float布局要記住 1.如果浮動元素的上乙個...

float詳解和方法floatToInt

浮點型變數在計算機記憶體中占用4位元組 byte 即32 bit。遵循ieee 754格式標準。乙個浮點數由2部分組成 底數m 和 指數e。mantissa 2exponent 注意,公式中的mantissa 和 exponent使用二進位制表示 底數部分 使用 進製數來表示此浮點數的實際值。指數部...

CSS浮動屬性Float詳解

float 是 css 的定位屬性。在傳統的印刷布局中,文字可以按照需要圍繞。一般把這種方式稱為 文字環繞 在網頁設計中,應用了css的float屬性的頁面元素就像在印刷布局裡面的被文字包圍的一樣。浮動的元素仍然是網頁流的一部分。這與使用絕對 定位的頁面元素相比是乙個明顯的不同。絕對定位的頁面元素被...