Float
The basic of the basic ~
Float-Point (FP, 浮點數) 是程式碼中的一個典型型態,也衍伸出經典的問題。 FP 本身因為機械的限制本身儲存的內容並不精準,典型的儲存方式為 IEEE 745 :他使用1-bit 來儲存正負號、8-bits 來儲存指數 (exponential) 內容、23-bits 來儲存有效位數 (fraction)。 然而因為精準度的問題,而延伸出來 0.30000000000000004 問題: 這個問題是描述兩個簡單的浮點數 0.1 與 0.2 相加卻得到 0.30000000000000004 這個結果。 這問題各種常見的程式語言中 (例如 GCC、Python2) 都可以發現。
跳脫這個問題,一個程式如何將 FP 轉換成一個字串也是另一個有趣的問題: 依 0.1 為例,他轉為 IEEE 745 則會變成 0 01111011 10011001100110011001101 (0-123-5033165), 也就是一個 1+0.10011001100110011001101 (二進位) 乘上 2 的 (123-127) 次方的正數。