PHPのceil関数やfloor関数で小数点を切り上げ・切り捨てする方法

PHPのceil関数やfloor関数で小数点を切り上げ・切り捨てする方法

公開: 更新:
CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座


PHPのceil関数で小数点以下を切り上げる方法

PHPで計算結果に小数点以下の端数が発生した際、その数値を切り上げて整数にしたい場面があると思います。小数点以下を切り上げる方法として、以下3つを覚えておくと良いでしょう。

  • 基本的な切り上げ
  • 位を指定して切り上げる
  • マイナス値を切り上げる

それぞれ異なる状況で使い分けることによって、価格計算や在庫管理など実務での数値処理を正確に行えます。以下では各方法について詳しく解説していきます。

基本的な切り上げ

ceil関数は、引数に指定した数値の小数点以下を切り上げて整数を返します。基本的な構文は「ceil(数値);」の形式で記述し、戻り値はfloat型となります。

<?php
$number = 3.14;
echo ceil($number);
?>

上記のコードでは、3.14という数値をceil関数で切り上げているため、結果は4が出力されます。小数点以下に0.01でも値があれば、次の整数に切り上げられる仕組みです。

位を指定して切り上げる

ceil関数は小数点の位置で切り上げを行いますが、特定の桁で切り上げたい場合は計算式を工夫します。対象の数値を一時的に10倍や100倍することによって、小数点の位置をずらしてから切り上げを実行できます。

<?php
// 小数点第二位で切り上げる場合
$number = 1.234;
echo (ceil($number * 10) / 10);

// 小数点第三位で切り上げる場合
echo (ceil($number * 100) / 100);
?>

小数点第二位で切り上げる際は、数値を10倍してceil関数を適用し、その結果を10で割ります。この方法によって1.234は1.3に切り上げられる為、同様に100倍して100で割ることで小数点第三位での切り上げも実現できます。

【PR】プログラミングや生成AIを無料で学べる「コードキャンプフリー」

マイナス値を切り上げる

ceil関数はマイナス値に対しても使用できますが、切り上げの動作が正の数とは異なります。マイナス値の切り上げは0に近い方向へ丸められるため、絶対値としては切り捨てに見える結果となります。

<?php
$number = -3.14;
echo ceil($number);
?>

上記のコードでは、-3.14をceil関数で切り上げているため、結果は-3が出力されます。マイナスの場合、-4ではなく0に近い-3になる点に注意が必要です。

PHPのfloor関数で小数点以下を切り捨てる方法

小数点以下を切り捨てて整数にしたい場合、floor関数を使用します。floor関数は、引数に指定した数値の小数点以下を無条件に切り捨てて、整数を返すPHPの組み込み関数です。

小数点以下を切り捨てる方法として、以下3つがあります。

  • 基本的な切り捨て
  • 位を指定して切り捨てる
  • マイナス値を切り捨てる

それぞれの方法を使い分けることによって、データ集計や価格表示など様々な場面で正確な数値処理が可能になります。以下では各方法について、詳しく解説していきます。

基本的な切り捨て

floor関数は、引数に指定した数値の小数点以下を切り捨てて整数を返します。基本的な構文は「floor(数値);」の形式で記述し、戻り値はfloat型となります。

<?php
$number = 3.99;
echo floor($number);
?>

上記のコードでは、3.99という数値をfloor関数で切り捨てているため、結果は3が出力されます。小数点以下がどれだけ大きな値でも、無条件に切り捨てられる仕組みです。

位を指定して切り捨てる

floor関数もceil関数と同様に、計算式を工夫することによって、特定の桁で切り捨てが可能です。対象の数値を一時的に10倍や100倍してから切り捨てを実行し、元の位に戻します。

<?php
// 小数点第二位で切り捨てる場合
$number = 1.234;
echo (floor($number * 10) / 10);

// 小数点第三位で切り捨てる場合
echo (floor($number * 100) / 100);
?>

小数点第二位で切り捨てる際は、数値を10倍してfloor関数を適用し、その結果を10で割ります。この方法によって、1.234は1.2に切り捨てられます。同様に、100倍して100で割ることによって、小数点第三位での切り捨ても実現できます。

【PR】『Python』を学べる企業・個人向けのプログラミングコース

マイナス値を切り捨てる

floor関数はマイナス値に対しても使用できますが、切り捨ての動作が正の数とは異なります。マイナス値の切り捨ては、0から遠ざかる方向へ丸められるため、絶対値としては切り上げに見える結果となります。

<?php
$number = -3.14;
echo floor($number);
?>

上記のコードでは、-3.14をfloor関数で切り捨てているため、結果は-4が出力されます。マイナスの場合、-3ではなく0から遠い-4になる点に注意が必要です。

PHPのround関数で小数点以下を四捨五入する方法

小数点以下を四捨五入して丸めたい場合、round関数を使用します。round関数は、引数に指定した数値を四捨五入するPHPの組み込み関数で、第二引数で桁数を指定できる点がceil関数やfloor関数と異なります。

小数点以下を四捨五入する方法として、以下3つがあります。

  • 基本的な四捨五入
  • 位を指定して四捨五入する
  • マイナス値を四捨五入する

それぞれの方法を使い分けることによって、統計処理や金額計算など幅広い場面で自然な数値処理が可能になります。以下では各方法について、詳しく解説していきます。

基本的な四捨五入

round関数は、引数に指定した数値を四捨五入して整数を返します。基本的な構文は「round(数値);」の形式で記述し、小数点以下が0.5以上なら切り上げ、0.5未満なら切り捨てられます。

<?php
$number1 = 3.4;
$number2 = 3.6;
echo round($number1);
echo round($number2);
?>

上記のコードでは、3.4は3に切り捨てられ、3.6は4に切り上げられます。四捨五入の判定基準は0.5であり、この値を境に処理が変わる仕組みです。

位を指定して四捨五入する

round関数は第二引数で桁数を指定することによって、小数点以下の任意の位で四捨五入できます。正の整数を指定すると小数点以下の桁数を、負の整数を指定すると整数部の桁数を調整できます。

<?php
$number = 1.234;
// 小数点第一位で四捨五入
echo round($number);

// 小数点第二位で四捨五入
echo round($number, 1);

// 小数点第三位で四捨五入
echo round($number, 2);

// 整数部の10の位で四捨五入
$number2 = 1234;
echo round($number2, -1);
?>

第二引数に1を指定すると、小数点第二位で四捨五入され、1.234は1.2となります。また、-1を指定すると10の位で四捨五入され、1234は1230となります。この方法によって、ceil関数やfloor関数よりも柔軟な桁指定が可能です。

マイナス値を四捨五入する

round関数はマイナス値に対しても使用でき、絶対値に対して四捨五入を行った後に符号を付けます。処理の基準は正の数と同じく0.5で判定されます。

<?php
$number1 = -3.4;
$number2 = -3.6;
echo round($number1);
echo round($number2);
?>

上記のコードでは、-3.4は-3に、-3.6は-4に四捨五入されます。マイナス値でも0.5を基準に判定される点は正の数と同様です。

※上記コンテンツの内容やソースコードはAIで確認・デバッグしておりますが、間違いやエラー、脆弱性などがある場合は、コメントよりご報告いただけますと幸いです。

ITやプログラミングに関するコラム


ITやプログラミングに関するニュース

ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。

CodeCampが提供するDX人材育成が可能なプログラミングやITが学べる公開講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプが提供する無料で学べるプログラミングスクール講座 - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア 金融業界の業務効率化を加速するニッセイアセットマネジメントの生成AI×GAS活用研修事例 - IT・プログラミングを知って学べるコネクトメディア 【製造業のDX人材育成事例】デジタル人材の即戦力化を実現する、日本ガイシ株式会社の異動者向オンボーディング研修 - ITやプログラミングを知って学べるコネクトメディア フューチャーアーキテクト株式会社が実現した新入社員向けIT研修プログラムでタスクフォース制度が主体的な学びと成長を生み出す - IT・プログラミングを知って学べるコネクトメディア コードキャンプDX人材育成研修 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【IT新入社員研修】オンラインとオフラインの最適バランスを実現したFutureOneの導入事例 - IT・プログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/【新入社員研修】柔軟なハイブリッド型Java研修で実現した新卒20名の成長と成果|サークレイス株式会社 - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/現場により近いところにデジタルを根付かせるDX基礎講座研修|株式会社ブリヂストン - ITやプログラミングを知って学べるコネクトメディア コードキャンプIT・プログラミング研修事例/業務の効率化・DX推進に向けたIT人材育成への第一歩|株式会社カナエ - ITやプログラミングを知って学べるコネクトメディア 企業・法人向けのIT・プログラミング研修 - ITやプログラミングを知って学べるコネクトメディア

新着記事

対象者別で探す

子供(小学生・中学生・高校生)向け
プログラミング教室検索する

子供(小学生・中学生・高校生)がロボットやプログラミング言語を学ぶことができるオフラインからオンラインスクールを検索、比較することが可能です。

子供(小学生・中学生・高校生)
プログラミング教室検索する

ITやプログラムなどの
最新情報を検索する

日々、新しいITやプログラミング言語の情報が流れていきますが、特定の情報を時系列でニュースやコラムを確認することができます。

ITやプログラムなどの
最新情報を検索する