文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美國信紙尺寸) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  浮點數類型(近似值)- FLOAT、DOUBLE

13.1.4 浮點數類型(近似值)- FLOAT、DOUBLE

FLOATDOUBLE 類型表示近似數值資料值。MySQL 對於單精度值使用 4 個位元組,對於雙精度值使用 8 個位元組。

對於 FLOAT,SQL 標準允許在關鍵字 FLOAT 後面的括號中指定可選的精度(但不包含指數的範圍),以位元為單位,也就是說,FLOAT(p)。MySQL 也支援此可選精度規範,但是 FLOAT(p) 中的精度值僅用於確定儲存大小。從 0 到 23 的精度會產生 4 位元組的單精度 FLOAT 欄。從 24 到 53 的精度會產生 8 位元組的雙精度 DOUBLE 欄。

MySQL 允許非標準語法:FLOAT(M,D)REAL(M,D)DOUBLE PRECISION(M,D)。此處,(M,D) 表示可以儲存總共最多 M 位數字的值,其中 D 位數字可能在小數點之後。例如,定義為 FLOAT(7,4) 的欄顯示為 -999.9999。MySQL 在儲存值時會執行四捨五入,因此如果您將 999.00009 插入 FLOAT(7,4) 欄中,則近似結果為 999.0001

FLOAT(M,D)DOUBLE(M,D) 是非標準的 MySQL 擴充;並且已棄用。您應該預期在未來版本的 MySQL 中移除對這些變體的支援。

由於浮點數值是近似值,而不是以精確值儲存,因此在比較中嘗試將其視為精確值可能會導致問題。它們也受限於平台或實作的相依性。有關更多資訊,請參閱 第 B.3.4.8 節,「浮點數值的問題」

為了獲得最大的可攜性,需要儲存近似數值資料值的程式碼應使用 FLOATDOUBLE PRECISION,而不指定精度或位數。