0

我有一个 SQL 查询,例如:

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

假设 column2 的值为 7,column3 的值为 1,则在此语句之后 column1 应设置为值 7,但始终为 6 而不是 7。对于除数为 1 的任何一对值,结果总是减去 1。我没有t 检查了 1 以外的值,但为什么会出现这种行为?

4

2 回答 2

3

这可能是浮点数不准确。

column2可能是一个浮点数并且column1是一个int. 如果计算的结果是,6.999999999则转换为的结果int6

如果您需要精确的准确性,那么您应该使用定点数据类型,例如decimal.

于 2013-09-16T07:47:07.333 回答
0

尝试ROUND()MYSQL中的函数如下

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

于 2013-09-16T07:52:29.097 回答