有没有可能把一个数字四舍五入,如果它是.5,就把它留下,任何低于.5的都可以四舍五入,任何高于.5的都可以四舍五入?
例如:5.0 * 1.35 = 6.75 // leave it
5.2 * 1.35 = 7.02 // round down to 7.00
5.5 * 1.35 = 7.56 // round up to 8.00
我已经用round($n,0, PHP_ROUND_HALF_UP)
格式化了,其中$n是上面计算的结果,剩下6.75,但是下一个返回7.02。我也尝试了round($n,-1, PHP_ROUND_HALF_UP)
这给了我第二次计算的7.00,但是当然第一次不会返回6.75,而是返回680。
这是一个票证标记计算,用户输入第一个数字,然后乘以第二个数字。实际上,我删除了小数点,因为他们不想看到它,他们希望对结果进行这种定制的舍入。
最佳答案
function myround($num, $prec) {
$rhu = round($num, $prec, PHP_ROUND_HALF_UP);
$rhd = round($num, $prec, PHP_ROUND_HALF_DOWN);
return ($rhu + $rhd) / 2;
}
适用于任何你喜欢的精度。对于百分位,如示例中所示,
$prec
需要为2。