読み込み中...

PHPで切り捨て処理をする5つのステップ!コード例付き解説

PHPの切り捨て処理の解説イメージ PHP
この記事は約6分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

本記事のサンプルコードを活用して機能追加、目的を達成できるように作ってありますので、是非ご活用ください。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を満たす現役のプログラマチームによって監修されています。

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

この記事を読むことで、PHPの切り捨て処理について深く理解し、自信を持って使いこなせるようになります。

それでは、一緒に学んでいきましょう。

●PHPとは

PHPは、ウェブサイトのバックエンドを構築するためのサーバーサイドスクリプト言語です。

非常に柔軟性が高く、初学者でも扱いやすいとされています。

○PHPの特徴

PHPの特徴として、主に次の3つが挙げられます。1つ目は、HTMLに直接埋め込むことができる点です。

これにより、デザインとプログラムを分離することなく、一つのファイル内で完結させることが可能です。

2つ目は、データベースとの連携が容易である点です。

MySQLやPostgreSQLなど、さまざまなデータベースとの連携が容易で、ウェブアプリケーションの開発に適しています。

3つ目は、大規模なコミュニティが存在し、多くの情報が共有されている点です。

困った時には、ネットで情報を探すことが容易で、学習の助けとなります。

●PHPでの切り捨て処理とは

PHPでは、数値を切り捨てるための関数として「floor()」が提供されています。

切り捨てとは、小数点以下の数値を無視し、その整数部分だけを取り出す処理のことを指します。

例えば、3.14を切り捨てると3になり、-2.8を切り捨てると-3になります。

○切り捨ての基本

切り捨ては、数学的な計算や、特定の範囲の整数を得るためにしばしば使用されます。

例えば、ユーザからの入力値を整数に制限したい場合や、小数点以下を丸めて表示したい場合などに使います。

●PHPでの切り捨て処理の使い方

○サンプルコード1:基本的な切り捨て

次に示すコードは、PHPにおける基本的な切り捨て処理の例です。

ここでは変数$numに数値3.6を代入し、その数値を切り捨てるためにfloor関数を使用しています。

結果として、切り捨てられた数値3が出力されます。

<?php
$num = 3.6;  // 切り捨てる数値
$rounded = floor($num);  // floor関数で切り捨て
echo $rounded;  // 切り捨てた結果を出力
?>

○サンプルコード2:負の数の切り捨て

次に、負の数の切り捨てについて見てみましょう。

負の数の場合、小数点以下を切り捨てると絶対値が大きくなることに注意が必要です。

下記のコードでは、-2.8を切り捨てて、-3を得ています。

<?php
$num = -2.8;  // 切り捨てる負の数値
$rounded = floor($num);  // floor関数で切り捨て
echo $rounded;  // 切り捨てた結果を出力
?>

●PHPでの切り捨て処理の応用例

PHPでの切り捨て処理は、さまざまな応用例があります。

○サンプルコード3:配列の要素を切り捨てる

配列のすべての要素を切り捨てる処理を見てみましょう。

ここでは、配列内の各要素に対してfloor関数を適用し、全ての要素を切り捨てます。

<?php
$nums = [1.2, 2.7, 3.6, 4.1];  // 切り捨てる数値が含まれる配列
foreach ($nums as &$num) {
    $num = floor($num);  // 配列の各要素を切り捨て
}
unset($num);  // 参照を解除
print_r($nums);  // 切り捨てた結果を出力
?>

○サンプルコード4:切り捨てを利用したランダムな整数生成

次のコードでは、0から10までのランダムな整数を生成しています。

ここでは、rand関数とgetrandmax関数を使用して0から1までのランダムな小数を生成し、それに10を掛けて0から10までのランダムな小数を得ています。

その後、floor関数を使用してその小数を切り捨て、0から10までのランダムな整数を得ています。

<?php
$num = rand() / getrandmax() * 10;  // 0から10までのランダムな小数を生成
$int = floor($num);  // floor関数で切り捨てて整数を得る
echo $int;  // 切り捨てた結果を出力
?>

○サンプルコード5:切り捨てを利用した小数点以下の桁数指定

次のコードは、切り捨て処理を利用して小数点以下の桁数を指定する方法を示しています。

ここでは、元の数値に10のn乗を掛けて小数点をn桁分右に移動させ、その後floor関数で切り捨て、最後に再度10のn乗で割ることで元の位置に戻しています。

<?php
$num = 3.14159;  // 元の数値
$n = 2;  // 保持する小数点以下の桁数
$result = floor($num * pow(10, $n)) / pow(10, $n);  // 小数点以下を切り捨てて結果を得る
echo $result;  // 切り捨てた結果を出力
?>

●注意点と対処法

PHPのfloor関数は、引数が浮動小数点数でない場合、警告を発生させます。

そのため、切り捨てを行う前に、引数が数値であることを確認するか、数値にキャストすることが推奨されます。

また、floor関数は引数が正の無限大の場合は正の無限大を、負の無限大の場合は負の無限大を返します。NaN(Not a Number)の場合はNaNを返します。

これらの特殊な値を正しく処理するためには、それらを適切にチェックすることが必要です。

●カスタマイズ方法

PHPのfloor関数はそのまま使用するだけでなく、自分のニーズに合わせてカスタマイズすることも可能です。

例えば、特定の桁で切り捨てを行いたい場合や、特定の範囲で切り捨てを行うような関数を自作することも可能です。

具体的なカスタマイズ例として、10のn乗の倍数に切り捨てる関数を作ることを考えてみましょう。

下記のコードは、10のn乗の倍数に切り捨てるカスタム関数です。

<?php
function floorToMultipleOfTen($num, $n) {
    $base = pow(10, $n);  // 10のn乗を計算
    return floor($num / $base) * $base;  // numをbaseで割って切り捨て、再びbaseを掛ける
}
echo floorToMultipleOfTen(12345, 2);  // 12300を出力
?>

このコードでは、数値と桁数を引数に取るカスタム関数を作成しています。

この関数は、まず10のn乗を計算し、それを基準として数値を切り捨てます。

最後に、その基準を再度掛けることで、元の数値を10のn乗の倍数に切り捨てる操作を実現しています。

まとめ

この記事では、PHPでの切り捨て処理について詳しく説明しました。

PHPの切り捨て処理は、整数を取得するためだけでなく、ランダムな整数の生成や小数点以下の桁数の指定など、さまざまな場面で活用することができます。

また、PHPのfloor関数をカスタマイズすることで、更に多様な切り捨て処理を行うことが可能です。

一方で、引数の型や特殊な値に注意しながら使用することが重要です。

PHPでの切り捨て処理を理解し、適切に使用することで、より効率的なプログラミングが可能になります。