當在MySQL中使用DECIMAL
數據類型存儲精確的小數值時,您可能希望避免四舍五入。為了實現這個目標,您可以將精度和小數位數設置得足夠高,以便存儲原始值而不進行任何舍入。
創建一個包含不進行舍入的DECIMAL
字段的表:
CREATE TABLE my_table (
id INT AUTO_INCREMENT PRIMARY KEY,
value DECIMAL(10, 5) NOT NULL
);
在這個例子中,我們創建了一個名為my_table
的表,其中有一個名為value
的字段,它的類型是DECIMAL(10, 5)
。這意味著該字段可以存儲最多10位數字,其中5位是小數位。通過將精度設置為10,我們可以確保在插入和檢索數據時不會發生舍入。
插入數據而不進行舍入:
INSERT INTO my_table (value) VALUES (123.456789);
INSERT INTO my_table (value) VALUES (987.654321);
檢索數據而不進行舍入:
SELECT * FROM my_table;
結果:
+----+------------------+
| id | value |
+----+------------------+
| 1 | 123.456789 |
| 2 | 987.654321 |
+----+------------------+
如您所見,插入的值沒有被四舍五入,而是保留了其原始精度。請注意,為了最大限度地減少舍入誤差,最好使用能夠存儲所需精度的小數位數。