1

xml ファイルから取得され、変数に割り当てられているが、正しく出力されない数値。なぜ、またはそれを回避する方法がよくわかりません。例はこれです。

$pricing_high = 1.15;
echo $pricing_high;

これは明らかに 1.15 を表示します。しかし、これを次のように割り当てると:

$price = ceil($pricing_high / 0.05) * 0.05;
echo $price;

これは 2 を表示します。

$price = round($pricing_high / 0.05) * 0.05;
echo $price;

これは 1 を表示します。

このように渡すときに、数値を最も近い 5 セントに正しく切り上げるにはどうすればよいですか?

4

3 に答える 3

2

ラウンド関数の PHP ドキュメントの時点で:

http://php.net/manual/en/function.round.php

2 番目のパラメーターとして精度を指定できます。

$pricing_high = 1.15;
$price = round($pricing_high / 0.05, 2) * 0.05;
echo $price;

第 2 パラメータ 2 の音価

于 2012-03-30T12:28:52.497 に答える
1

1.15= 1 ドルと 15 セントですか? もしそうなら:

echo sprintf('%.2f', round($price / 0.05) * 0.05); // Rounds to nearest
echo sprintf('%.2f', ceil($price / 0.05) * 0.05); // Rounds up

テスト:

$price = 1.13;

echo sprintf('%.2f', round($price / 0.05) * 0.05); // Outputs: 1.15
echo sprintf('%.2f', ceil($price / 0.05) * 0.05); // Outputs: 1.15

$price = 1.12;

echo sprintf('%.2f', round($price / 0.05) * 0.05); // Outputs: 1.10
echo sprintf('%.2f', ceil($price / 0.05) * 0.05); // Outputs: 1.15

1.15= 1.15 セントの場合は に置き換え0.05ます5

于 2012-03-30T12:39:25.137 に答える
0

ceil() と floor() にはこの精度がないため、結果を乗算してから除算することができます。

于 2012-03-30T12:32:04.487 に答える