PHP - 奇怪的乘法

时间:2014-06-15 18:53:25

标签: php

我有以下代码:

$convertedCredits = round($userBalance['points'] / $convertionPoints) * $convertionPrice;
echo 'points: ' . $userBalance['points'] . ' - to: ' . $convertedCredits;

示例数据(我知道除以9并乘以9没有意义,但数据是动态的):

(6000/9) * 9

我的回声结果如下:

points: 6000 - to: 60030

为什么会导致60030?

1 个答案:

答案 0 :(得分:5)

你的php代码说:

round(6000 / 9) * 9

因此php计算600/9,产生666.66667。

然后它在该数字上使用round(),得到667。

然后它将结果乘以9,得到6003。

它的行为完全符合设计。

尝试将回声线更改为此,看看会发生什么。我打赌你得到了

echo '(points: ' . $userBalance['points'] . ' - to: ' . $convertedCredits . ')  ';

我敢打赌额外的零点来自程序中的其他地方,你得到了

(points: 6000 - to: 6003)  0

convertionPrice值为90。