on Linux you may need to install icu-data-full package for NumberFormatter to work properly with non-english locales.
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
NumberFormatter::format -- numfmt_format — Format a number
Об'єктно-орієнтований стиль
$num
, int $type
= NumberFormatter::TYPE_DEFAULT): string|falseПроцедурний стиль
$formatter
, int|float $num
, int $type
= NumberFormatter::TYPE_DEFAULT): string|falseFormat a numeric value according to the formatter rules.
formatter
NumberFormatter object.
num
The value to format. Can be int or float, other values will be converted to a numeric value.
type
The
formatting type to use.
Note that NumberFormatter::TYPE_CURRENCY
is not supported;
use NumberFormatter::formatCurrency() instead.
Returns the string containing formatted value, or false
on error.
Приклад #1 numfmt_format() example
<?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 OO example
<?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
Зауваження:
Formats achievable by this method of formatting cannot fully use the possibilities of underlying ICU library, such as to format currency with narrow currency symbol.
To fully utilize them use msgfmt_format_message().
on Linux you may need to install icu-data-full package for NumberFormatter to work properly with non-english locales.