PHPの浮動小数が切り上げられることを確認したいany小数が存在する場合、数学的な丸め規則を気にせずに。この関数は次のように機能します。
_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、1,000、1000分の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 = pow(10, $precision);
ゼロおよび負の精度値esでも機能するはずです。
var_dump(round_up(1024.654321, -1)); // Output: float(103)
私はアッシュの反応が好きですが、
$fig = (int) str_pad('1', $precision + 1, '0');
精度「2」を指定した場合、小数点以下2桁に丸められることを期待しています。たぶん選択の問題。回答をありがとうAsh、うまくいきます。