icon
icon

PHPで数値を3桁ずつカンマで区切りにする方法を現役エンジニアが解説【初心者向け】

初心者向けにPHPで数値を3桁ずつカンマで区切りにする方法について現役エンジニアが解説しています。PHPで数値をカンマ区切りにする方法には、number_format関数を使う方法があります。number_format関数とは、数値を渡すと3桁ずつカンマで区切った値を返す処理を行います。

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

監修してくれたメンター

井上 祐介

NEC・Microsoftの認定インストラクター。Z80アセンブラ・C++・C#・PHP・Javaなどの経験を経て業務で使用するプログラムの開発や新入社員プログラミング研修の講師を行った。

今回は、PHPで数値を3桁ずつカンマで区切りにする方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

目次

1時間でできる無料体験!

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

 

田島悠介

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

PHPで数値を3桁区切りで出力させるには、ゆかりちゃんだったらどんなプログラムを作るかな?

大石ゆかり

ズバリ、表示形式の数値で「桁区切り(,)を使用する」ですか!?

田島悠介

それは表計算ソフトExcelのセルの書式設定だよ。

大石ゆかり

それじゃあ・・・String.formatで「”%,d”」ですか!?

田島悠介

それはJavaだよ・・・(というか、よく知ってるね)

大石ゆかり

う~ん。それじゃあ、わからないです。

田島悠介

PHPでは数値を3桁区切りするときに使われる関数があるから見てみよう。

大石ゆかり

お願いします!

この記事は、number_format関数を使用して数値を3桁ずつカンマ区切りにする方法について記載した記事です。

PHPでの開発にあまり慣れていない方でも理解できる内容となっています。

number_format関数とは

数字を千位毎にグループ化して3桁ごとにカンマをつけた文字列にフォーマットする関数です。

例えば1000という数字があったら、1,000のようにフォーマットされます。

もちろん、3桁未満の数値ならそのまま文字列に変換されます。

number_format関数のパラメータで3桁区切りの文字や小数点の区切り文字も変えられます。

 

number_format関数を利用して数値を3桁ずつカンマで区切りにする方法

それでは、数値を3桁ごとにカンマで区切るためにnumber_format関数の使用方法について見ていきましょう。

使用方法:

number_format(数値)

上記のようにnumber_format関数に数値を引数で渡すことで、数値を3桁ずつカンマで区切った値を返却します。

[PR] PHPプログラミングで挫折しない学習方法を動画で公開中

実際に書いてみよう

それでは、実際にnumber_format関数で数値を3桁ずつカンマで区切ってその結果を見てみましょう。

サンプルコード:

<?php
// 数値を3桁ごとにカンマで区切って出力
echo number_format(1000000);
?>

 

実行結果:

1,000,000

 

上記の例では、1000000という数値をnumber_format関数に引数として渡して、3桁ごとにカンマで区切った値にフォーマットし出力しています。

実行結果から分かる通り引数で渡した数値が3桁ごとにカンマで区切られていることが確認できます。

 

コラム

コスパとタイパ、両方結果的に良くなる良くなる学び方とは?

「スクールは高いし時間も縛られて効率が悪い」と考える方は多いと思います。
もちろん、時間も費用もかかることは間違いありません。
ただ 結果的に無駄な学びにお金も時間もかける方がリスクが高いという考えもあります。

コスパ・タイパ最適化の参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困ったときに、質問や相談できる相手がいるため挫折しなかった
  • ・プロとして必要なスキルのみを深く学べたので無駄がなかった
  • ・副業案件の提供と納品までのサポートがあったので目的を達成できた

安価・短期間で広く浅く学んでも意味がありません。 本当に自分の目的が達成できるか、それが重要です。
自分にどのスキルや学び方が合っているか、どんな学習方法かなど、お気軽に 無料相談 に参加してみませんか?

カウンセラー・現役のプロへ、何でも気軽に無料相談可能。 30分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

小数に3桁区切りをつける

大石ゆかり

整数に3桁区切りをつける方法はわかったんですが、小数を3桁区切りにすると小数部分がなくなっちゃいました・・・

echo number_format(123.45678);

実行結果:

123
田島悠介

number_formatで小数を扱うには、2つ目の引数で小数点以下の桁数を指定する必要があるよ。

この2つ目のパラメータが省略された場合には、小数点以下が出力されないから注意する必要があるね。

number_formatの2つ目のパラメータを指定すると、出力する小数点以下の桁数を指定できます。

使用方法:

number_format(数値, 出力する小数点の桁数)

小数点の桁数指定が数値の小数点の桁数より大きい場合は「0」ゼロで埋められます。

サンプルコード:

<?php
// 数値を3桁ごとにカンマで区切って出力
echo number_format(123.45678, 0);	//小数点以下が出力されない(デフォルト)
echo "\n";
echo number_format(123.45678, 3);	//小数点以下を3桁 出力する
echo "\n";
echo number_format(123.45678, 5);	//小数点以下を5桁 出力する
echo "\n";
echo number_format(123.45678, 8);	//指定桁数が多い場合「0」が出力される
?>

 

実行結果:

123
123.457
123.45678
123.45678000
大石ゆかり

田島メンター!小数点の桁数の指定が少ないと四捨五入になっています!

切り捨てじゃないんですね・・・

echo number_format(123.45678, 3);

実行結果:
小数点が切り捨てられる

田島悠介

そうなんだよ。

number_format関数は小数点以下の指定した桁数以上なら四捨五入してしまうから注意が必用だね。

大石ゆかり

もしかして、2つ目の引数を指定せずに小数を指定すると四捨五入されちゃうんでしょうか?

田島悠介

次のPHPコードと実行結果を見てくれるかな。

echo number_format(12345.678);

実行結果:

12,346
大石ゆかり

見事に1の位が四捨五入されています・・・

田島悠介

そんなわけで、number_format関数に小数を指定する場合は注意が必用だね。

PHPで経理のプログラムを作る場合、知らない間に四捨五入された「1円」が入ってしまうこともあるかもね。

大石ゆかり

ひえー。

そんなことになったら大変です!

気を付けます!

 

3桁区切りの文字列を数値に戻す方法

3桁区切りが入った文字列「123,456,789」を「123456789」のようにカンマなしの数値に戻せます。

表計算ソフトなどで出力されたCSV形式のファイルをPHPで読み込むときなどに使えるでしょう。

str_replace関数を使うと、文字列を置換できます。

使用方法:

str_replace(検索文字列, 置換文字列, 操作対象文字列);

str_replace関数で文字列を削除するには、2つ目の置換文字列に””(空白文字)を指定します。

str_replace関数でカンマを削除してみましょう。

$num = number_format($num);	//3桁区切りにする
echo $num . "<br>\n";
$num = str_replace(",", "",$num);	//3桁区切りの解除(カンマを削除)
echo $num;

実行結果:

123,456,789
123456789

このようにstr_replace関数でカンマを削除し、数値に戻すことができます。

大石ゆかり

文字列操作でカンマを削除できるんですね。

そういえば型変換なんてありましたけど、(int)で3桁区切りの文字列を整数に型変換できますか?

田島悠介

いい質問だね。

実際にやってみるといいよ。

大石ゆかり

普通に文字列から整数にできそうなんだけどなあ?

echo (int)"12,345,678";

実行結果:

12

うわあ。

ほとんど切り捨てられちゃいました。

田島悠介

PHPの型キャストでは、最初の数値として認識できる文字列までしか変換してくれないから左端の「12,」からカンマまでの数字「12」だけが変換されたんだよ。

大石ゆかり

なるほどおー。

いろいろ勉強になりますね。

 

1時間でできる無料体験!

まとめ

以上、number_format関数を使用して、数値を3桁ごとにカンマで区切る方法についてご紹介しました。

このように画面に数値をカンマ区切りで表示したいなどの要件があった場合にnumber_format関数を使用した方法を採用するといいかもしれません。

指定した小数点以下の桁があると四捨五入されるので、注意しましょう。

監修してくれたメンター

井上祐介

テックアカデミーのメンター。

NEC・Microsoftの認定インストラクター。

学生時代からのプログラミング経験を経て業務で使用するプログラムの開発を行う。

新入社員研修でプログラミング初心者がサーバーサイドプログラムを組めるようになるまでの講師を担当した。

プログラム作成初心者がプログラミングを楽しめる講師でありたいというモットーがある。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

 

PHPを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する