0

私は使っている

$p1 = 66.97;

$price1  = $row['Value']*$p1;
$price1 = number_format($price1, 2, '.', '');

簡単な計算を行い、価格を小数点以下 2 桁まで表示します。これはうまくいきます。結果を最も近い に切り上げたいと思い.05ます。これについてのアイデア - 私は苦労しています18.93。ありがとう。18.9519.5719.60

4

5 に答える 5

1

あなたは次のようなことをするかもしれません:

$price = ceil($p1*20)/20;

に切り上げる必要があり0.05ます。ceil は通常、切り上げて1; そのため、数値に 20 ( ) を掛けて1/0.05 = 20、ceil が必要なことを実行できるようにしてから、思いついた数値を割る必要があります。

float 演算に注意してください。実際の結果は、12.95 ではなく 12.949999999999999999999 のようになる場合があります。したがって、例のようにsprintf('%.2f', $price)またはで文字列に変換する必要がありますnumber_format

于 2013-09-28T09:21:07.247 に答える
0

答えに 100 を掛けてから、5 で割り算します。剰余が 3 未満の場合は剰余を引き、そうでない場合は (5 - 剰余) を足します。次に、最終結果を得るために 100 で割ります。

于 2013-09-28T09:16:50.610 に答える
0

試す:

function roundUpToAny($n,$x=5) {
    return round(($n+$x/2)/$x)*$x;
}

i.e.:

echo '52 rounded to the nearest 5 is ' . roundUpToAny(52,5) . '<br />';
// returns '52 rounded to the nearest 5 is 55'
于 2013-09-28T09:21:01.240 に答える
0
$price = ceil($price1 * 20) / 20;
于 2013-09-28T09:21:03.570 に答える