PHPのnumber_formatで数値を3桁のカンマ区切りにする

  • このエントリーをはてなブックマークに追加
  • Pocket

スポンサードリンク

金額などの数値を1,000単位でカンマ区切りにしてくれる便利な関数がPHPにはあります。

number_format()を使えば、桁が多い数値もとても見やすくなるでしょう。

 

number_format関数

数字を千位ごとにグループ化してフォーマットします。

数値をカンマで区切る

まずはオーソドックスな3桁ごとにカンマ区切りにしてみましょう。

12,800

,(カンマ)が3桁ごとに付き、とても見やすくなりました。

日本ではこのスタイルで表記されますね。

小数を区切る

小数をカンマで区切ってみましょう。

先ほどのやり方と、小数点以下の桁数を指定する2パターンで見てみます。

12,801
12,800.99

通常のnumber_format()は四捨五入されましたが、第二引数に小数点以下の桁数を指定することで、四捨五入されず小数点以下まで表示されました。

別の記号で区切る

日本は,カンマ区切りですが、スイスやドイツなどは.(ピリオド)や'(アポストロフィ)だったり、国によって区切り方も違います。

12.800,99
12 800,99
12’800.99

上記のように、区切り文字と小数点の記号が違います。

数値の区切りはドイツは.(ピリオド)、フランスは 半角スペース、スイスは'(アポストロフィ)です。

小数点の区切りはドイツとフランスは,(カンマ)、スイスは日本と同じ.(ピリオド)です。

number_format関数の構文

number_format ( 区切りたい数値 [ , 小数点以下の桁数 , 小数点の区切り文字 , 数値の区切り文字 ]([ ]は省略可) );

下記3パターンの使い方ができます。

 

  1. 通常の整数なら一番最初のサンプルのように、数値を指定するだけでカンマ区切りしてくれる。
  2. 小数になると小数点以下は四捨五入されるため、桁数を指定することでその位で四捨五入となる。
  3. 区切り文字を変えたい場合は、第三引数に小数点を、第四引数に数値の区切り文字を指定する。
    第三引数を指定する場合は、第四引数とセットで指定しないとエラーになる。

HTMLエンティティとの併用

HTMLのタグをそのまま出力させるとセキュリティ上危ないため、HTMLエンティティ化させるのが通常ですね。

その際、number_format()とどう併用したらいいのか分からず、いろいろ調べたことがありました。

上記のように、htmlspecialchars()の中でnumber_format()を使えばいいだけですね。

htmlspecialchars()は長ったらしいので独自関数化していますが、その際は2番目のような書き方で使っています。

詳しくは以下の記事をご確認ください。

参考:PHPのhtmlspecialcharsでのHTMLエンティティ化と、一文字に簡略化方法

スポンサードリンク

  • このエントリーをはてなブックマークに追加
  • Pocket

コメントを残す

*