PHP Conference Nagoya 2025

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::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, например, форматировать валюту с узким символом валюты.

Для полной поддержки, используйте функцию msgfmt_format_message().

Смотрите также

Добавить

Примечания пользователей 1 note

up
1
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