Главная->Уроки по php->Форматирование чисел с помощью функции PHP number_format()
Форматирование чисел с помощью функции PHP number_format()
При выводе чисел на веб странице отличным способом улучшить доступность информации является форматирование для облегчения восприятия. Например, число 123,456.78 воспринимается гораздо лучше, чем 123456.784321. PHP функция number_format() предоставляет лёгкий способ форматировать числа для отображения. Можно отделять тысячи с помощью запятой или другого символа, выбирать символ для десятичной точки и определять количество десятичных знаков в дробной части числа для отображения (можно совсем не выводить дробную часть числа). Основные опции форматирования чисел По умолчанию number_format() принимает число для форматирования и возвращает строку, которая содержит отформатированное число, округлённое до ближайшего целого с разделением каждой группы тысяч с помощью запятой: 1 $myNumber = 1234567.89; 2 3 // Выводит "1,234,568" 4 echo number_format( $myNumber ); Так как number_format() возвращает строку, которая содержит символы разделители, то использовать вывод функции number_format() в качестве числовых значений для последующих математических операций или функций нельзя. Поэтому, все вычисления надо производить в оригинальных числовых значениях, а форматировать результат с помощью number_format() только тогда, когда нужно показывать его пользователю. Задаём количество знаков дробной части числа Количество знаков в дробной части числа задаётся в качестве второго аргумента функции number_format(). Функция округляет число вверх или вниз до указанного количества десятичных знаков: 1 $myNumber = 123456.784321; 2 3 // Выводит "123,456.78" 4 echo number_format( $myNumber, 2 ); 5 6 // Выводит "123,456.8" 7 echo number_format( $myNumber, 1 ); Использование различных символов разделителей По умолчанию функция number_format() использует точку для отделения десятичной дробной части и запятую для разделения групп тысяч. Для того, чтобы использовать другие символы, нужно передать новый десятичный разделитель в качестве третьего аргумента в функцию, а новый разделитель тысяч — в качестве четвёртого аргумента. Следующий пример демонстрирует форматирование чисел в соответствии с Французским стандартом — запятая используется для отделения дробной части числа, а пробел — для отделения групп тысяч.: 1 $myNumber = 123456.784321; 2 3 // Выводит "123 456,78" 4 echo number_format( $myNumber, 2, ',', ' ' ); Если вам нужно выводить числа в соответствии с Английским стандартом, то есть с округлением до двух десятичных знаков в дробной части и без отделения групп тысяч, нужно использовать следующий вызов функции: 1 $myNumber = 123456.784321; 2 3 // Выводит "123456.78" 4 echo number_format( $myNumber, 2, '.', '' ); Вы можете использовать PHP функцию localeconv() для определения текущих установок локали компьютера для десятичной точки и разделителя тысяч — чтобы установить их в функции number_format(). Резюме Функция number_format() предоставляет лёгкий способ для вывода чисел в удобном для чтения формате.