圆形大的非十进制数字,用PHP上下

时间:2012-05-02 20:25:37

标签: 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


nearset 1000的例子

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

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

2 个答案:

答案 0 :(得分:7)

您可以使用此功能:

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;
}

答案 1 :(得分:2)

查看php manual中的回合。第一个例子说:

<?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