浮點數是一種數字,其小數分隔符號後面有零或多位數字。例如 -2.4、0.1、3.14、5.、16.984025 和 1024.0。
不同的浮點型別能儲存的小數位數不同,這就稱為它的精確度。
Go 有兩種浮點型別:
float32:32 位元(精確度約 6 到 9 位數)。float64:64 位元(精確度約 15 到 17 位數)。
這是預設的浮點型別。如你所見,這兩種型別能儲存的位數不同。這表示如果試著把 PI 存進float32,只會儲存前 6 到 9 位數(最後一位會四捨五入)。
預設情況下,Go 會對浮點數使用float64,除非該浮點數是:
float32的變數,或float32的函式回傳,或float32()函式。[math套件]包含許多實用的數學函式。
比較浮點型別的值是否相等時,一定要格外小心,因為看起來代表相同值的值,實際上可能並不相同。
你可以在 0.30000000000000004.com 找到浮點數的簡短介紹。 [Float Toy 頁面]有很棒的圖解,說明浮點數的位元如何轉換成實際的浮點值。