CakeFest 2024: The Official CakePHP Conference

NumberFormatter::format

numfmt_format

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

NumberFormatter::format -- numfmt_format数値をフォーマットする

説明

オブジェクト指向型

public NumberFormatter::format(int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false

手続き型

numfmt_format(NumberFormatter $formatter, int|float $num, int $type = NumberFormatter::TYPE_DEFAULT): string|false

数値をフォーマット規則にしたがってフォーマットします。

パラメータ

formatter

NumberFormatter オブジェクト。

num

フォーマットする値。int あるいは float で指定します。その他の型は数値に変換されます。

type

使用する フォーマット形式NumberFormatter::TYPE_CURRENCY はサポートされていないので注意して下さい。 NumberFormatter::TYPE_CURRENCY を使いたい場合、 代わりに NumberFormatter::formatCurrency() を使いましょう。

戻り値

フォーマットした値を文字列で返します。 エラー時には false を返します。

例1 numfmt_format() の例

<?php
$fmt
= numfmt_create( 'de_DE', NumberFormatter::DECIMAL );
$data = numfmt_format($fmt, 1234567.891234567890000);
if(
intl_is_failure(numfmt_format($fmt))) {
report_error("Formatter error");
}
?>

例2 オブジェクト指向の例

<?php
$fmt
= new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$fmt->format(1234567.891234567890000);
if(
intl_is_failure($fmt->getErrorCode())) {
report_error("Formatter error");
}
?>

上の例の出力は以下となります。

1.234.567,891

注意

注意:

このメソッドで実現可能なフォーマットでは、 ICU ライブラリが持つ機能をすべて使えません。 たとえば、短い通貨記号を使ってフォーマットする場合です。

ICU ライブラリが持つ機能をすべて使うには、 msgfmt_format_message() を使います。

参考

add a note

User Contributed Notes 1 note

up
2
mrSplendid
1 year ago
on Linux you may need to install icu-data-full package for NumberFormatter to work properly with non-english locales.
To Top