4

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

4

2 に答える 2

9

この機能を使用できます:

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;
}
于 2012-05-02T20:37:56.810 に答える
3

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を使用できます

于 2012-05-02T20:43:24.547 に答える