PHP-round()函数,使用PHP\u round\u HALF\u DOWN模式(意外行为)
目前我正在使用PHP5.3.29和PHP\u round\u HALF\u DOWN模式中的round()函数对特定数字进行四舍五入 这是我的密码:PHP-round()函数,使用PHP\u round\u HALF\u DOWN模式(意外行为),php,rounding,floor,ceil,Php,Rounding,Floor,Ceil,目前我正在使用PHP5.3.29和PHP\u round\u HALF\u DOWN模式中的round()函数对特定数字进行四舍五入 这是我的密码: function getBetragrabatt($betrag, $rabatt, $ratezahl = false){ if(!empty($rabatt)){ $rabatt = str_replace(array(",", "."), array("", ""), $rabatt); if($rat
function getBetragrabatt($betrag, $rabatt, $ratezahl = false){
if(!empty($rabatt)){
$rabatt = str_replace(array(",", "."), array("", ""), $rabatt);
if($ratezahl >=1)
$abschlag = ($rabatt / $ratezahl);
else
$abschlag = $rabatt;
$abschlag = floor($abschlag / 100) . '.' . ($abschlag % 100);
$rabattbetrag = ($betrag - round($abschlag, 0, PHP_ROUND_HALF_DOWN));
}
return $rabattbetrag;
}
$rateRabatt = getBetragrabatt(119.95, 100, 18);
echo $rateRabatt;
如果我在sandbox()上使用代码,一切都会按预期工作,结果是119.95
如果我在IDE中使用相同的代码或将其上载到服务器,结果会得到119.40
我做错了什么?
希望您能帮助我。这并不能真正解决您的问题,但您确实希望切换到新版本的PHP,我敢说,这将得到解决(就像在沙箱中)。@H2ONOCK我也想这样做,但我目前依赖于此版本:(假设PHP版本实际上是您的问题,您需要编写自己的函数来处理舍入,而不是使用PHP的本机函数。PHP网站上的一些评论可能会有所帮助…@H2ONOCK我使用的是5.3.29版本,根据纪录片,自版本开始,具有PHP_round_HALF_DOWN模式的舍入函数就可用了。)5.3.无论如何,谢谢:)嗨,我知道这一点,但我想知道那个版本中是否有bug,我不记得很久以前了。我很想知道你是如何解决这个问题的。