MySQL中小數類型使用DECIMAL或DOUBLE PRECISION表示。DECIMAL通常用于存儲金融金額,DOUBLE PRECISION用于存儲物理測量值。在MySQL中,0到1之間的小數可以用DECIMAL(2,1)或DECIMAL(3,2)表示,也可以用DOUBLE PRECISION表示。
CREATE TABLE example ( id INT NOT NULL AUTO_INCREMENT, decimal_col DECIMAL(2,1), double_col DOUBLE PRECISION, PRIMARY KEY (id) );
DECIMAL類型指定了數值的總長度和小數點后的位數。DECIMAL(2,1)表示一個總長度為2的數值,并保留1位小數。例如,0.1、0.2、0.3等都可以存儲在DECIMAL(2,1)中,但是0.12、0.23等長度超過2,不能存儲。
DOUBLE PRECISION類型使用更多的存儲空間,可以表示更精細的小數。它能夠存儲小于0.000000000000001的數值,但是它的存儲精度可能會受到硬件或軟件限制。
INSERT INTO example (decimal_col, double_col) VALUES (0.5, 0.5), (0.8, 0.8), (0.45, 0.45);
在MySQL中,對于保存小數的列,可以使用ROUND函數來取整。ROUND函數接收兩個參數,第一個參數表示需要取整的數值,第二個參數表示保留的小數位數。
SELECT ROUND(decimal_col, 1) AS round_decimal, ROUND(double_col, 1) AS round_double FROM example;
以上代碼將返回一個包含三行記錄的結果集,每行記錄包含一個DECIMAL類型的值和一個DOUBLE PRECISION類型的值,并保留一位小數。