0

我在生活中见过一些错误,但最让我吃惊的是这个。

我有一个包含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

有谁知道为什么会这样?

4

1 回答 1

0

尝试CAST这样:

select rma.*, CAST((120.0 / 60.0 * rma.amount) AS DECIMAL(10,2)) as reward
于 2013-01-10T15:25:07.917 回答