有时候圆函数不太好用。我的数据库里有这样一排:

field_1= 375
field_2= 0.65
field_3= 0.1
field_4= 11

所以我们知道:field_1*field_2*field_3*field_4=268.125所以如果我把它四舍五入到2个小数->268.13。
但是在mysql中,我得到了268.12->从我的表中选择round(field_1*field_2*field_3*field_4)->268.12
这种情况只发生在这些值上,我尝试了其他的数字,没有问题。
任何解决办法。我在MySQL4.1.22和5.1.44中试过了,也遇到了同样的问题。我在其他论坛上读到,这不是一个bug,他们说这取决于C库的实现。

最佳答案

这些列使用什么数据类型?
如果需要精确的精度,则应使用NUMERICDECIMAL,而不是FLOATREALDOUBLE
manual开始:

The DECIMAL and NUMERIC types store exact numeric data values.
These types are used when it is important to preserve exact precision,
for example with monetary data.

关于mysql - 在MySQL中回合不能很好地工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6512098/

10-12 20:07