(PHP 4, PHP 5, PHP 7, PHP 8)
number_format — Форматирует число с группировкой классов многозначного числа
$num,$decimals = 0,$decimal_separator = ".",$thousands_separator = ","Функция форматирует число с группировкой классов многозначного числа, и, если нужно, с десятичными разрядами. Функция применяет правило математического округления в бо́льшую сторону.
numФорматируемое число.
decimals
Задаёт количество десятичных разрядов.
Значение параметра decimal_separator
опускается в возвращаемом значении,
если в параметр передали значение 0.
Начиная с PHP 8.3.0 при отрицательном значении аргумента число num
округляется до заданного в параметре decimals количества значащих чисел
перед десятичной точкой.
До PHP 8.3.0 функция игнорировала отрицательные значения и обрабатывала
их как 0.
decimal_separatorУстанавливает разделитель дробной части.
thousands_separatorУстанавливает разделитель классов многозначного числа.
Функция возвращает отформатированное число num.
| Версия | Описание |
|---|---|
| 8.3.0 |
Добавили обработку отрицательных значений для параметра decimals.
|
| 8.0.0 | До этой версии функция number_format() принимала один, два или четыре параметр, но не три. |
| 7.2.0 |
Функцию number_format() изменили, чтобы не возвращать
значение -0. Раньше функция иногда возвращала значение -0,
если параметр num равнялся -0.01.
|
Пример #1 Пример округления числа функцией number_format()
Во французской нотации указывают два знака: запятую «,» как десятичный разделитель и пробел « » как разделитель классов многозначных чисел. Следующий пример демонстрирует способы форматирования числа:
<?php
$number = 1234.56;
// Английский формат (по умолчанию)
$english_format_number = number_format($number);
// 1,235
// Французский формат
$nombre_format_francais = number_format($number, 2, ',', ' ');
// 1 234,56
$number = 1234.5678;
// Английский формат без разделителя классов многозначного числа
$english_format_number = number_format($number, 2, '.', '');
// 1234.57
?>Пример #2 Пример форматирования числа с отрицательным значением в аргументе decimals
Начиная с PHP 8.3.0 отрицательное значение аргумента decimals
округляет число до заданного количества значащих чисел перед десятичной точкой.
<?php
$number = "1234.5678";
var_dump(number_format($number, -1));
var_dump(number_format($number, -2));
var_dump(number_format($number, -3));
?>Результат выполнения приведённого примера:
string(5) "1,230" string(5) "1,200" string(5) "1,000"