こんにちは、Ryohei(@ityryohei)です!

本記事では、PHPで金額を表示するときに小数点を含む万円の形で表示する方法をご紹介しています。

金額を表示するときに「1.1万円」みたいに省略した万円表示にしたいんだけど、良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

本記事でやりたいこと

冒頭の説明だとわかりにくい気がしたので、詳しくご説明します。

本記事で実現したいのは下記の2点です。

  • 10,000円未満であれば数値を3桁のカンマ区切りにしてと表示にする
  • 10,000円以上であれば数値を小数点を含む形にして万円と表示にする

例はこんな感じ!

1万円未満

9,999円

1万円以上

1.1万円

1万円未満であればカンマ区切りで金額を出力して、1万円以上のときは万円を付加して省略表示するという単純なものですね。

表示できる文字数に制限があったり、ざっくりとした金額だけ表示したい場合に便利かと思います!

では早速やっていきましょう!

1万円以上のときに小数点を含む金額にする

まずは1万円以上のときに少数点を含む数値にして万円を結合した形で出力します。

対象の数値を10000で割って文字列をくっつけてあげればいいので……

<?php

$amount = 11000;
$result = $amount / 10000;

echo $result."万円";

//実行結果
1.1万円

こんな感じでOKですね!

後は対象の数値が10000未満の場合に分岐する処理と、対象の数値を3桁のカンマ区切りにしてあげます。

1万円未満のときの処理も追加する

というわけで完成形がこちら!やりたかったことは実現できているかと思います。

<?php

//対象金額
$amount = 11000;

//1万円未満
if($amount < 10000){
    $result = number_format($amount);
    $result .= "円";

//1万円以上
} else {
    $result = round($amount / 10000, 1); //小数点第二位で四捨五入
    $result .= "万円";
}

//出力
echo $result;

ユーザーの入力値などのデータを使用する場合バリデーションチェックをした方が良いと思いますので、その辺は環境に合わせて調整してくださいね!

最後に

しばらくPHPでプログラムを組んでいなかったので、組み込み関数などをすっかり忘れてしまっていました。業務や個人の案件で頻繁に使用する言語は極力触るようにしたいと思います。

以上、PHPで金額に小数点を付けて「万円」の形で表示する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / ブロガー

福岡のWeb制作会社に務めるWebエンジニアです。エンジニア歴は10年程で、好きな言語はPHPとJavaScriptです。本サイトは私がインプットしたWebに関する知識を整理し、共有することを目的に2015年から運営しています。Webに関するご相談があれば気軽にお問い合わせください。