аватар Автор: Сергей Касаткин | 05 августа 2014 11:51

Статьи / PHP /

Форматирование чисел с помощью функции number_format PHP

Среди функций PHP есть такие, которые работают числами, с их выводом. Например, number_format. Она позволяет отформатировать числовые данные. Например, число 123 456.78 будет лучше восприниматься, чем 123456.784321.

PHP функция number_format() - это лёгкий способ форматировать числа для их последующего отображения. Можно разделять разряды, выбирая знак разделения, можно выбирать знак разделения целой и дробной части или вовсе не выводить последнюю.


Основы форматирования чисел в PHP


По умолчанию number_format() принимает число для форматирования и возвращает строку, которая содержит отформатированное число, округлённое до ближайшего целого с разделением каждой группы тысяч с помощью запятой. Рассмотрим пример.

$number = 1234567.89;

// Выводит "1,234,568"

echo number_format( $number );


Так как number_format() возвращает строку, которая содержит символы разделители, то использовать вывод функции number_format() в качестве числовых значений для последующих математических операций или функций нельзя. Поэтому, все вычисления надо производить в оригинальных числовых значениях, а форматировать результат с помощью number_format() только тогда, когда нужно показывать его пользователю.


Задаём количество знаков дробной части числа


Количество знаков в дробной части числа задаётся в качестве второго аргумента функции number_format(). Функция округляет число вверх или вниз до указанного количества десятичных знаков:

$myNumber = 123456.784321;

// Выводит "123,456.78"

echo number_format( $myNumber, 2 );

// Выводит "123,456.8"

echo number_format( $myNumber, 1 );


Использование различных символов разделителей


По умолчанию функция number_format() использует точку для отделения десятичной дробной части и запятую для разделения групп тысяч. Для того, чтобы использовать другие символы, нужно передать новый десятичный разделитель в качестве третьего аргумента в функцию, а новый разделитель тысяч — в качестве четвёртого аргумента.

Следующий пример демонстрирует форматирование чисел в соответствии с Французским стандартом — запятая используется для отделения дробной части числа, а пробел — для отделения групп тысяч.:

$myNumber = 123456.784321;

// Выводит "123 456,78"

echo number_format( $myNumber, 2, ',', ' ' );


Если вам нужно выводить числа в соответствии с Английским стандартом, то есть с округлением до двух десятичных знаков в дробной части и без отделения групп тысяч, нужно использовать следующий вызов функции:

$myNumber = 123456.784321;

// Выводит "123456.78"

echo number_format( $myNumber, 2, '.', '' );


Вы можете использовать PHP функцию localeconv() для определения текущих установок локали компьютера для десятичной точки и разделителя тысяч — чтобы установить их в функции number_format().



Вывод


Благодаря функции number_format() возможен лёгкий способ для вывода чисел в нужном разработчику формате для последующего чтения.

Спасибо за внимание!
 



Похожие статьи


Комментарии к статье (vk.com)