PHP四舍五入;不起作用


PHP round half up doesn't work

我有这个代码

<?php echo round(0.572,2,PHP_ROUND_HALF_UP);?>

我想把两位小数四舍五入到一半,我希望值为0.58。。。但上面的代码打印0.57

我该怎么做?

如果期望0,58,则不必使用"半圆形",而是使用ceil函数

$v = 0.575;
echo ceil($v * 100) / 100; // show 0,58

0.572不能四舍五入到0.58,因为第三个小数点2小于一半(或5)。如果你做round(0.575, 2, PHP_ROUND_HALF_UP),你会得到0.58。在这种情况下,0.57是正确的四舍五入值。

如果您希望始终从第三个小数点向上取整,无论其值如何,都可以使用ciel(),但它需要一些额外的数学运算。演示舍入的一个简单功能始终是…

function forceRoundUp($value, $decimals)
{
    $ord = pow(10, $decimals);
    return ceil($value * $ord) / $ord;
}
echo forceRoundUp(0.572, 2); // 0.58
echo forceRoundUp(0.57321, 4); // 0.5733
function round_up($value, $places)
{
  $mult = pow(10, abs($places));
  return $places < 0 ?
  ceil($value / $mult) * $mult :
  ceil($value * $mult) / $mult;
}
echo round_up(0.572,2);

希望这对你有用!!