6

関数を検索すると、数値が5の倍数に最も近い値に丸められます。

22 -> 20
23 -> 25
40 -> 40
46 -> 45
48 -> 50

等々。

常に高い値を返すこれを試しました:

5 * ceil($n / 5);
4

3 に答える 3

24

round()の代わりに使用してくださいceil()

5 * round($n / 5);

ceil()浮動小数点数を次の整数に順番に切り上げます。round()標準の丸め規則を使用して、最も近い整数に丸めます。

于 2012-10-16T11:09:30.543 に答える
0

数学に戻ります。丸めは小数で機能するため、5を掛け、10で割ってから、丸めます。もう一度5を掛けて、必要なものを取得します。(他の答えも同様に機能しますが、それを見る方法が異なります)

function round_5($in)
{
    return round(($in*2)/10)*5;
}

echo round_5(48);

これが役立つかどうかを確認する

于 2012-10-16T11:22:08.917 に答える
0

さて、カナダの会社のPOSの作成を支援しながらこの問題に直面し、この解決策を考え出しました。それが誰かに役立つことを願っています。(カナダは2012年にペニーを削除しました)。税込価格設定を行う場合も含まれます。2番目の引数として「1」を渡すだけです。

    //calculate price and tax
function calctax($amt,$tax_included = NULL){
  $taxa = 'tax rate 1 here';
  $taxb = 'tax rate 2 here';
  $taxc = ($taxa + $taxb) + 1;
  if(is_null($tax_included)){
    $p = $amt;
   }else{
    $p = number_format(round($amt / $taxc,2),2);
   } 
  $ta = round($p * $taxa,2);
  $tb = round($p * $taxb,2);
  $sp = number_format(round($p+($ta + $tb),2),2);
  $tp = number_format(round(($sp*2)/10,2)*5,2);
  $ret = array($ta,$tb,$tp);
  return $ret;
}
于 2015-12-21T02:37:42.273 に答える