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 — Форматирует число
Объектно-ориентированный стиль
$num
, int $type
= NumberFormatter::TYPE_DEFAULT): string|falseПроцедурный стиль
$formatter
, int|float $num
, int $type
= NumberFormatter::TYPE_DEFAULT): string|falseФункция форматирует числовое значение по правилами средства форматирования.
formatter
Объект NumberFormatter.
num
Значение для форматирования. Параметр принимает значения int, float и другие типы, которые преобразовываются в числовое значение.
type
Тип форматирования.
Параметр не поддерживает константу NumberFormatter::TYPE_CURRENCY
;
вместо вызова с этим флагом значение валюты форматируют методом NumberFormatter::formatCurrency().
Функция возвращает строку, которая содержит отформатированное значение, или false
, если возникла ошибка.
Пример #1 Пример форматирования числа функцией numfmt_format()
<?php
$fmt = numfmt_create('de_DE', NumberFormatter::DECIMAL);
$data = numfmt_format($fmt, 1234567.891234567890000);
var_dump($data);
?>
Пример #2 Пример форматирования числа в объектно-ориентированном стиле
<?php
$fmt = new NumberFormatter( 'de_DE', NumberFormatter::DECIMAL );
$data = $fmt->format(1234567.891234567890000);
var_dump($data);
?>
Результат выполнения приведённого примера:
string(13) "1.234.567,891"
Замечание:
Этот метод форматирования поддерживает функции базовой библиотеки ICU не на 100 % и, например, не разрешает выбирать формат обозначения валюты: р. или ₽.
Полную поддержку функций библиотеки даёт функция msgfmt_format_message().
on Linux you may need to install icu-data-full package for NumberFormatter to work properly with non-english locales.