查询计算错误

时间:2013-01-10 15:22:48

标签: mysql sql math

我在生活中看到过一些错误,但这个错误让我感到非常惊讶。

我有一个包含0.02的浮点列。

现在我正在尝试此查询:

select rma.*,120.0/60.0*rma.amount as reward

现在数学告诉我们结果将是0.04, 但令人惊讶的是,MySql(版本5.5.28)声称不然,并说它是:

0.03999999910593033

我也试过没有.0的数字,并使用大括号,结果仍然相同。

现在,所有不均匀数字的情况都会出现相同的结果。例如4.1将为8.199999809265137

任何人都知道为什么会这样?

1 个答案:

答案 0 :(得分:0)

尝试CAST就像这样:

select rma.*, CAST((120.0 / 60.0 * rma.amount) AS DECIMAL(10,2)) as reward