number_format

(PHP 4, PHP 5, PHP 7)

number_format数字を千位毎にグループ化してフォーマットする

説明

number_format ( float $number [, int $decimals = 0 ] ) : string
number_format ( float $number , int $decimals = 0 , string $dec_point = "." , string $thousands_sep = "," ) : string

この関数は 1 つか 2 つもしくは 4 つのパラメータを受け取ります (3 つはありません) :

パラメータが 1 つだけ渡された場合、 number は千位毎にカンマ (",") が追加され、 小数なしでフォーマットされます。

パラメータが 2 つ渡された場合、numberdecimals 桁の小数の前にドット (".") 、 千位毎にカンマ (",") が追加されてフォーマットされます。

パラメータが 4 つ全て渡された場合、number はドット (".") の代わりに dec_pointdecimals 桁の小数の前に、千位毎にカンマ (",") の代わりに thousands_sep が追加されてフォーマットされます。

パラメータ

number

フォーマットする数値。

decimals

小数点以下の桁数。

dec_point

小数点を表す区切り文字。

thousands_sep

千位毎の区切り文字。

返り値

number をフォーマットした結果を返します。

変更履歴

バージョン 説明
7.2.0 number_format() was changed to not being able to return -0, previously -0 could be returned for cases like where number would be -0.01.
5.4.0 この関数は、 dec_pointthousands_sep に複数バイトを指定できるようになりました。 それまでは、複数のバイトを指定しても先頭の 1 バイトしか使われませんでした。

例1 number_format() の例

例えばフランスの表記法では、通常カンマ (',') を小数の区切りとした二桁の小数と、千位毎の区切りとしてスペース (' ') を用います。数値を書式設定するさまざまな方法を次の例で示します。

<?php

$number 
1234.56;

// 英語での表記 (デフォルト)
$english_format_number number_format($number);
// 1,235

// フランスの表記
$nombre_format_francais number_format($number2','' ');
// 1 234,56

$number 1234.5678;

// 千位毎の区切りがない英語での表記
$english_format_number number_format($number2'.''');
// 1234.57

?>

参考

  • money_format() - 数値を金額文字列にフォーマットする
  • sprintf() - フォーマットされた文字列を返す
  • printf() - フォーマット済みの文字列を出力する
  • sscanf() - フォーマット文字列に基づき入力を処理する