2017-02-13 30 views
0

我有一個簡單的問題就明白了:MySQL的數量數學精度

SELECT (200/0.713788), 280.1952*0.713788, 280.195240043*0.713788 

結果:

  1. 西:280.1952,爲什麼會被截斷?小數的規則是什麼?

  2. col:199.9999714176,這很好,它不能準確,因爲我在這裏複製了第一個col的結果。

  3. col:199.999999999812884,這是我最感興趣的東西。爲什麼它不完全是200?

+0

此外,以scaisEdge答案,這可能會回答你: 「爲什麼?」 :https://dev.mysql.com/doc/refman/5.5/en/problems-with-float.html –

回答

1

你280.195240043 * 0.713788爲= 199.999999999812884

如果你需要一個圓形的數量,你應該使用ROUND()

SELECT (200/0.713788), 280.1952*0.713788, round(280.195240043*0.713788 , 8)