オーダーメイドコース
icon
icon

PHPで小数点以下を表示する方法を現役エンジニアが解説【初心者向け】

初心者向けにPHPで小数点以下を表示する方法について現役エンジニアが解説しています。PHPで少数点以下の数字を扱うには、浮動小数点型(float型)を使います。小数点以下が0の場合は整数として表示されてしまうので、printf・sprintfやnumber_format関数を使い桁数を指定します。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

今回は、PHPで小数点以下を表示する方法について解説します。

 

そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。

 

なお本記事は、TechAcademyのオンラインブートキャンプPHP/Laravel講座の内容をもとに紹介しています。

 

田島悠介

今回は、PHPに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

PHPで小数点以下を表示する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 
PHPで少数点以下の数字を扱うには、浮動小数点型(float型)を使います。

変数を定義するときに、小数点をつけた数字を代入すれば、自動的に浮動小数点型になります。
 

$a = 10.0;

 
では、この数字を表示する方法を見ていきましょう。
 

小数点以下を表示する

通常の出力では、整数型、浮動小数点型に関わらず、小数点以下が0の場合は、整数として表示されます。
 

$a = 10.0;
$b = 10;
echo $a;  // 10が表示される。
echo $b;  // 10が表示される。

 
これを少数点以下まで表示するためには、フォーマットを指定して出力する方法があります。
小数点以下を表示するための関数として、printfとsprintfとnumber_formatがあります。

printfとsprintfとの違いは、値の出力を標準出力に出力するのか、戻り値として返すのかの違いです。

printfは値を標準出力に出力し、sprintfは値を戻り値として返します。
これらの関数は、出力する値を特定のフォーマットに従って整形します。

1つ目の引数に表示する内容、2つ目以降の引数にフォーマットに沿って表示したい値を取ります。

小数点を表示するには、「%.2f」というフォーマットを使います。ここでの整数「2」は、小数点以下第二位までを表示するという指定です。
 

$a = 10.0;
printf("%.2fn", $a); // 10.00と表示される。

 
※sprintfも同様の引数をとります。

また、number_formatでは、1つ目の引数に表示したい数字、2つ目の引数に小数点以下第何位まで表示するかを指定します。
 

$a = 10.0;
echo number_format($a, 2); // 10.00と表示される。

 
このように、それぞれ小数点以下第何位まで表示するかを指定して表示できます。
 

実際に書いてみよう

それでは、実際に小数点以下の出力内容を確認してみます。

下記のように、3つの数字を用意して、それぞれの関数で出力します。
※var_dump関数は、値の型を確認するために用います。
 

<?php
$a = 10.0;
$b = 10;
$c = 1/3;
var_dump($a);
var_dump($b);
var_dump($c);
echo "---- printf ----n";
printf("%.2fn",$a);
printf("%.2fn",$b);
printf("%.2fn",$c);
echo "---- sprintf ----n";
echo sprintf('%.2f',$a)."n";
echo sprintf('%.2f',$b)."n";
echo sprintf('%.2f',$c)."n";
echo "---- number_format ----n";
echo number_format($a, 2)."n";
echo number_format($b, 2)."n";
echo number_format($c, 2)."n";
?>

 
出力結果は下記のようになります。
 

float(10)
int(10)
float(0.33333333333333)
//---- printf ----
10.00
10.00
0.33
//---- sprintf ----
10.00
10.00
0.33
//---- number_format ----
10.00
10.00
0.33

 
このように、それぞれの関数で小数点以下第二位まで表示されているのが確認できます。

 

[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは

筆者プロフィール

メンターYさん

フリーランスエンジニアとして、PHPを中心としたWEB開発全般を行う。
最近では、WordPressを使ったメディアの構築・運用を多くこなしている。

元々は大手通信会社のエンジニアで、セキュリティに関する仕事をするも、大企業が肌に合わず独立。
一箇所に縛られての仕事を苦手とし、自宅とカフェとコワーキングスペースを行ったり来たりしている。

ただ、自宅にいるとどうしてもゲームをしてしまうため、コワーキングスペースの比率が大きい。

 

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でもPHPやフレームワークのLaravelを使ってWebアプリケーション開発を習得できるオンラインブートキャンプPHP/Laravel講座を開催しています。

挫折しない学習方法を知れる説明動画や、現役エンジニアとのビデオ通話とチャットサポート、学習用カリキュラムを体験できる無料体験も実施しているので、ぜひ参加してみてください。