PHP開発では、多くの場合、浮動小数点数を丸める必要があります。 intval()関数は変数を整数に変換できますが、上向きの丸め(つまり、「天井」操作)をサポートしませんが、単に分数部分を切り捨て、結果を下方に丸めます。上向きの丸めの効果を達成するには、通常、 CEIL()などの他の機能と組み合わせて使用する必要があります。
この記事では、CEIL()とintval()関数を組み合わせて、最初に丸めてから整数に変換する機能を実現し、使用するときに注意する必要がある詳細を説明する方法を紹介します。
intval()関数は、変数を整数型に変換するために使用され、構文は次のとおりです。
intval(mixed $var, int $base = 10): int
分数部分を直接切り捨てます。
<?php
var_dump(intval(4.7)); // 出力 int(4)
var_dump(intval(-3.9)); // 出力 int(-3)
?>
上記の例からわかるように、 intval()は小数部を丸めたり回したりしません。
CEIL()関数は、フローティングポイント番号を切り上げるために使用され、指定された数値以下の最小整数を返し、結果タイプは浮動小数点数です。
ceil(float $value): float
例:
<?php
var_dump(ceil(4.1)); // 出力 float(5)
var_dump(ceil(-3.7)); // 出力 float(-3)
?>
ceil()が浮動小数点番号を返すことに注意してください。整数タイプが必要な場合でも、変換する必要があります。
最初にフローティングポイント番号を丸めてから整数タイプに変換する場合は、最初にceil()でそれを丸めてから、 intval()で変換できます。
<?php
$num = 4.3;
$intNum = intval(ceil($num));
echo $intNum; // 出力 5
?>
これは、「整数に丸めて変換する」という目的を達成します。
<?php
function ceilToInt($num) {
return intval(ceil($num));
}
// テスト
$values = [3.2, 5.9, -2.7, -4.0];
foreach ($values as $val) {
echo "元の値: $val, 丸めた後の整数: " . ceilToInt($val) . "\n";
}
?>
実行結果:
元の値: 3.2, 丸めた後の整数: 4
元の値: 5.9, 丸めた後の整数: 6
元の値: -2.7, 丸めた後の整数: -2
元の値: -4, 丸めた後の整数: -4
シナリオ:価格、ページ番号、数量などを切り上げる必要があり、整数タイプが必要な場合に非常に実用的です。
知らせ:
ceil()は浮動小数点番号を返し、 intval()またはcastを使用して整数を取得する必要があります。
intval()は、分数部分を切り捨てることにより、負の数を丸くすることにより、負の数を処理します。単独で使用すると、上に丸くすることはできません。
結合すると、順序を逆にすることはできません。たとえば、 ceil(intval($ num))はintval(ceil($ num))と同等ではありません。
数字を含むURLパラメーターを処理し、パラメーターを整数まで丸めたいとします。