我有这段代码
<?php echo round(0.572,2,PHP_ROUND_HALF_UP);?>
我想将两位小数舍入到一半,我希望值为0.58 ... 但上面的代码打印0.57
我该怎么做?
答案 0 :(得分:1)
值0.572
无法向上舍入为0.58
,因为第三个小数2
小于一半(或5
)。如果您正在执行round(0.575, 2, PHP_ROUND_HALF_UP)
,则会获得0.58
。在这种情况下,0.57
是正确的舍入值。
如果您希望始终从第3个小数点向上舍入,无论其值如何,您都可以使用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
答案 1 :(得分:1)
如果您期望0,58,则不必使用“半轮”而是使用ceil函数
$v = 0.575;
echo ceil($v * 100) / 100; // show 0,58
答案 2 :(得分:0)
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);
希望这对你有用!!