2017-02-13 67 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)