对大的非十进制数字进行舍入,用 php 上下舍入


Round large non-decimal numbers, up and down with php

如何在 php 中舍入较大的数字。

注意:我已经准备好尝试了圆形功能,但似乎无法根据需要使其正常工作

例如:

假设我在数据库中有 4 个列表,它们有 4 个不同的价格。

    1st Price = 5,783
    2nd Price = 19,647
    3rd Price = 12,867
    4th Price = 23,647

现在我们确定数据中的最低价格5,783

最高价格23,647


现在我想做的是将最低价格四舍五入,说出最接近的 500 或 1000 甚至 5000


近集 1000 的示例

最低价格 5,783 向下舍入 = 5000

最高价格 23,647 四舍五入 = 24000

您可以使用此函数:

function nearest($num, $divisor) {
  $diff = $num % $divisor;
  if ($diff == 0)
    return $num;
  elseif ($diff >= ceil($divisor / 2))
    return $num - $diff + $divisor;
  else
    return $num - $diff;
}

这样称呼它:

nearest(23647, 5000);

类似的功能,但当您想自己决定舍入哪个方向时:

function roundUp($num, $divisor) {
  $diff = $num % $divisor;
  if ($diff == 0)
    return $num;
  else
    return $num - $diff + $divisor;
}

function roundDown($num, $divisor) {
  $diff = $num % $divisor;
  return $num - $diff;
}

看看 php 手册中的回合。拳头的例子说:

<?php
    echo round(3.4);         // 3
    echo round(3.5);         // 4
    echo round(3.6);         // 4
    echo round(3.6, 0);      // 4
    echo round(1.95583, 2);  // 1.96
    echo round(1241757, -3); // 1242000
    echo round(5.045, 2);    // 5.05
    echo round(5.055, 2);    // 5.06
?>

我想你正在寻找

round(23647, -3) 

我没有检查过这个,但它应该可以工作(见手册)。

如果你想杀死',你可以使用number_format