我有这个代码
<?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);
希望这对你有用!!