文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 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 參考手冊  /  ...  /  定點類型(精確值)- DECIMAL、NUMERIC

13.1.3 定點類型(精確值)- DECIMAL、NUMERIC

DECIMALNUMERIC 類型儲存精確的數值資料值。當需要保留精確精度時,例如處理貨幣資料時,會使用這些類型。在 MySQL 中,NUMERIC 實作方式與 DECIMAL 相同,因此以下關於 DECIMAL 的說明同樣適用於 NUMERIC

MySQL 以二進位格式儲存 DECIMAL 值。請參閱第 14.25 節,「精確數學」

DECIMAL 欄位宣告中,可以(且通常會)指定精度和小數位數。例如

salary DECIMAL(5,2)

在這個範例中,5 是精度,而 2 是小數位數。精度表示儲存值的有效位數,而小數位數表示可以儲存的小數點後的位數。

標準 SQL 要求 DECIMAL(5,2) 能夠儲存任何具有 5 位數和 2 位小數的值,因此 salary 欄位中可以儲存的值範圍從 -999.99999.99

在標準 SQL 中,語法 DECIMAL(M) 等同於 DECIMAL(M,0)。同樣地,語法 DECIMAL 等同於 DECIMAL(M,0),其中允許實作決定 M 的值。MySQL 支援這兩種 DECIMAL 語法的變體形式。M 的預設值為 10。

如果小數位數為 0,DECIMAL 值將不包含小數點或小數部分。

DECIMAL 的最大位數為 65,但給定 DECIMAL 欄位的實際範圍可能會受限於給定欄位的精度或小數位數。當此類欄位被賦予小數點後的位數多於指定小數位數所允許的值時,該值會轉換為該小數位數。(確切的行為取決於作業系統,但通常的效果是截斷為允許的位數。)