2
我有一列只有一列'id'。表的創建語句是:當以兩種不同的方式使用Mysql輪功能時獲取不同的結果
CREATE TABLE `test` (
`id` float default NULL
);
存在於表中的值是:
id
-----
8.075
當我執行查詢:
SELECT ROUND(id, 2) FROM test;
我得到的結果 '8.07' 。 但是,當我簡單地執行查詢:
SELECT ROUND(8.075,2);
我得到的「8.08」值。
在兩種情況下可以做些什麼來獲得一致的結果?
這些查詢的演示可以查看here。
是的,但那麼你會如何將數字'8.075'(在mysql中存儲爲最接近可能的浮點數'8.07499999999999928946')來獲得結果8.08。 – sushil
如果你需要這種行爲,那麼不要使用float,而應該用decimal。這是浮點數的一個衆所周知的限制,它們交換精度以表示比使用相似內存大小的整數大得多的範圍。 –
非常感謝。我從來不知道十進制小數。小數解決了我的問題。 – sushil