浮點數

在電腦科學中 ， 浮點 （ floating point ， 縮寫爲FP ） 是一種對於實數的近似值數值表現法 ， 由一個有效數字 （ 即尾數 ） 加上冪數來表示 ， 通常是乘以某個基數的整數次指數得到 。 以這種表示法表示的數值 ， 稱爲浮點數 （ floating - point number ） 。 利用浮點進行運算 ， 稱爲浮點計算 ， 這種運算通常伴隨着因爲無法精確表示而進行的近似或舍入 。 計算機使用浮點數運算的主因 ， 在於電腦使用二進位制的運算 。 例如 ： 4 ÷ 2 = 2 ， 4 = 100 ( 2 ) 、 2 = 010 ( 2 ) ， 在二進位相當於退一位數 。 則 1.0 ÷ 2 = 0.5 = 0.1 ( 2 ) 也就是 。 依此類推二進位的 0.01 ( 2 ) 就是十進位 == 0.25 。 由於十進位制無法準確換算成二進位制的部分小數 ， 如 0.1 ， 因此只能使用近似值的方式表達 。 這種表示方法類似於基數爲10的科學記數法 ， 在計算機上 ， 通常使用2爲基數的冪數來表示 。 一個浮點數a由兩個數m和e來表示 ： a = m × be 。 在任意一個這樣的系統中 ， 我們選擇一個基數b （ 記數系統的基 ） 和精度p （ 即使用多少位來存儲 ） 。 m （ 即尾數 ） 是形如 ± d.ddd ... ddd的p位數 （ 每一位是一個介於0到b - 1之間的整數 ， 包括0和b - 1 ） 。 如果m的第一位是非0整數 ， m稱作正規化的 。 有一些描述使用一個單獨的符號位 （ s 代表 + 或者 - ） 來表示正負 ， 這樣m必須是正的 。 e是指數 。 這種表示法的設計 ， 來自於對於值的表現範圍 ， 與精密度之間的取捨 ： 可以在某個固定長度的存儲空間內表示出某個實數的近似值 。 例如 ， 一個指數範圍爲 ± 4的4位十進制浮點數可以用來表示43210 ， 4.321或 0.0004321 ， 但是沒有足夠的精度來表示 432.123和 43212.3 （ 必須近似爲 432.1 和43210 ） 。 當然 ， 實際使用的位數通常遠大於4 。 此外 ， 浮點數表示法通常還包括一些特別的數值 ： + ∞ 和 − ∞ （ 正負無窮大 ） 以及NaN （' Not a Number' ） 。 無窮大用於數太大而無法表示的時候 ， NaN則指示非法操作或者無法定義的結果 。 其中 ， 無窮大 ， 可表示爲inf ， 在內存中的值是階碼爲全1 ， 尾數全0 。 而NaN在內存中的值則是階碼全1 ， 尾數不全0 。