小数が存在する場合、数学的な丸め規則を気にせずに、PHP の float が切り上げられるようにしたいと考えています。この関数は次のように機能します。
1.1 to 2
1.2 to 2
1.9 to 2
2.3 to 3
2.8 to 3
関数が存在することは知っていround()
ますが、小数が見つかった場合に切り上げる関数は表示されません。これを行う簡単な方法はありますか?
小数が存在する場合、数学的な丸め規則を気にせずに、PHP の float が切り上げられるようにしたいと考えています。この関数は次のように機能します。
1.1 to 2
1.2 to 2
1.9 to 2
2.3 to 3
2.8 to 3
関数が存在することは知っていround()
ますが、小数が見つかった場合に切り上げる関数は表示されません。これを行う簡単な方法はありますか?
ceil
関数を使用します。
$number = ceil(1.1); //2
これは古いトピックであることは知っていますが、Google には表示されます。精度に関する Blake Plumb の回答を拡張します。
ceil(1024.321 * 100) / 100;
100 を掛けて 100 で割ると、100 分の 1 でしか機能しません。これは、10 分の 1、1000 分の 1、100 分の 1 などでは正確ではありません。
function round_up($number, $precision = 2)
{
$fig = pow(10, $precision);
return (ceil($number * $fig) / $fig);
}
結果:
var_dump(round_up(1024.654321, 0)); // Output: float(1025)
var_dump(round_up(1024.654321, 1)); // Output: float(1024.7)
var_dump(round_up(1024.654321, 2)); // Output: float(1024.66)
var_dump(round_up(1024.654321, 3)); // Output: float(1024.655)
var_dump(round_up(1024.654321, 4)); // Output: float(1024.6544)
var_dump(round_up(1024.654321, 5)); // Output: float(1024.65433)
var_dump(round_up(1024.654321, 6)); // Output: float(1024.654321)
ノート:
私の元のスニペットを改善してくれた Joseph McDermott と brandom からの貢献に感謝します。
公式のCeil関数がそれを行います。
例から抜粋:
<?php
echo ceil(4.3); // 5
echo ceil(9.999); // 10
echo ceil(-3.14); // -3
?>
この質問には長い間回答がありましたが、このトピックについて Google 検索を行ったときに出てきました。正確に切り上げたい場合は、ceil 関数を使用し、表現したい小数点以下の桁数を数値に掛けてから、その数値で割るのが良い方法です。
ceil(1024.321*100)/100
1024.33を生成します
アッシュの反応が好きですが、次のようになります。
$fig = (int) str_pad('1', $precision + 1, '0');
精度「2」を指定すると、小数点以下 2 桁に丸められることが期待されます。選択の問題だと思いますが。答えてくれてありがとう Ash、うまくいきます。