是否可以四舍五入一个数字,如果它是 .5,就保留它,任何低于 .5 的向下舍入,高于 .5 的任何向上舍入?
例如:
5.0 * 1.35 = 6.75//保留它
5.2 * 1.35 = 7.02//向下舍入为 7.00
5.5 * 1.35 = 7.56//四舍五入到 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;
}
适用于您喜欢的任何精度。对于 hundreth 的位置,如示例中所示,$prec
需要为 2。
关于php - 使用 PHP 舍入不像 1.05 的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10952676/