PHP-奇怪的乘法
我有以下代码:PHP-奇怪的乘法,php,Php,我有以下代码: $convertedCredits = round($userBalance['points'] / $convertionPoints) * $convertionPrice; echo 'points: ' . $userBalance['points'] . ' - to: ' . $convertedCredits; 示例数据(我知道除以9再乘以9没有意义,但数据是动态的): 我的回音结果如下: points: 6000 - to: 60030 为什么会产生60030
$convertedCredits = round($userBalance['points'] / $convertionPoints) * $convertionPrice;
echo 'points: ' . $userBalance['points'] . ' - to: ' . $convertedCredits;
示例数据(我知道除以9再乘以9没有意义,但数据是动态的):
我的回音结果如下:
points: 6000 - to: 60030
为什么会产生60030?您的php代码说:
round(6000 / 9) * 9
因此php计算600/9,得到666.667
然后在该图上使用round()
,得到667
然后将结果乘以9,得到6003
它的行为完全符合设计
试着把你的回音线改成这个,看看会发生什么。我敢打赌你一定会成功
echo '(points: ' . $userBalance['points'] . ' - to: ' . $convertedCredits . ') ';
我打赌额外的零来自你程序中的其他地方
(points: 6000 - to: 6003) 0
或者您的
convertionPrice值为90。请阅读警告。如果除法结果不是整数,则round()
会给出错误的结果,是不是6003ROUND(600/9)
*90的值为60030
使用or扩展名。您确定尾随的0
来自此特定的echo
而不是页面下方的某个内容吗?我第一次尝试不使用ROUND,得到了相同的结果。不,它的行为不符合预期。你的结果是正确的,但是我的结果给了我60030(六万而不是六千)哦,是的。这是一个ajax调用的响应。。。天哪,我觉得自己太傻了。在我的辩护中,我一边工作一边看世界杯:p在编程时不再工作:p
(points: 6000 - to: 6003) 0