为什么这个奇怪的MYSQL导致分裂?

时间:2013-09-16 07:46:03

标签: mysql

我有一个SQL查询,如:

UPDATE t_example 
SET column1=column2/column3 
where 'SOME CLAUSE'

假设column2的值为7而column3的值为1,则column1应该在此语句之后设置为值7,但它始终为6而不是7.对于divisor为1的任何值对,结果总是小于1。我没有检查除1以外的值,但为什么会出现这种情况?

2 个答案:

答案 0 :(得分:3)

这可能是浮点不准确。

您的column2可能是浮点数,column1int。如果计算结果为6.999999999,则转换为int的结果为6

如果您需要准确的精确度,则应使用定点数据类型like decimal

答案 1 :(得分:0)

尝试使用MYSQL中的ROUND()函数,如下所示

  

NSERT INTO t_example SET column1 = ROUND(column2 / column3)