(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"