php - 使用 PHP 舍入不像 1.05 的 float

标签 php

是否可以四舍五入一个数字,如果它是 .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/

相关文章:

php - IIS7如何设置用户访问网络驱动器目录的权限

php - 在 echo php 表上使用 css

PHP : calculate day difference between stored datetime in mysql and current datetime for token expiry

同一用户的 session 变量的 PHP 并发更改?

php - 使用 PHP 和 Apache 清理类似 Wordpress 的 URL

php - 如何删除 CSV 文件中的第一行(列标题)?

java - 从php页面解析数据到android

php - 使用 php 在 html 文本框中检索 mysql 表值

javascript - 有没有办法使用ajax水平对齐动态卡?

php - 如何将 Twitter API 中的特殊字符存储到 MySQL 中?