有没有可能把一个数字四舍五入,如果它是.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。

08-19 07:38