Разбить число на разряды в PHP

    Комментариев нет 342

Всем привет. В этом небольшом пояснении постараюсь простыми словами объяснить как разбить число на разряды и что это вообще такое. Прежде всего это разделение числа на тысячные, сотые, десятичные составляющие и, как правило, между ними есть какой-то разделитель. Это может быть точка, запятая или пробел. Думаю, что каждый из нас обращал внимание как выводится цена за единицу товара на различных интернет-магазинах. В подавляющем большинстве случаев она выводится через пробел и разделяет тысячные суммы от сотых.

Телеграм-канал serblog.ru

Разбить число на разряды

Это и есть разделение числа на разряды. Но это не значит, что нужно ставить разделитесь вручную. В PHP это можно сделать автоматически. Можно сказать, что это типичная задача и решать ее нужно будет постоянно. Ведь практически на каждом сайте есть какая-то цена. И чтобы разделить число на разряды есть отличная, встроенная в язык PHP функция — number_format. У нее есть несколько аргументов, а именно — один, два или четыре! Если передать только один аргумент для разбиения числа на разряды, то функция отформатирует его так, что между каждыми тремя числами будет запятая.

$number = 56380;
number_format($number); // 56,380

Если установить 2 аргумента, то вторым из них будет числовым и означает оно сколько будет знаков после запятой, если число дробное.

$number = 56380.356;
number_format($number, 2); // 56,380.36 (округление в +)

Нельзя поставить три аргумента, если вам нужно разбить сумму на разряды, возникнет ошибка. Можно установить 1, 2, или 4, но не 3.

$number = 56380.356;
number_format($number, 2, ',', ' '); // 56 380,36

Теперь следует закрепить материал и разобрать то, что я здесь написал еще более детально.

1 $number Форматируемое число
2 $num Сколько будет знаков после запятой
3 (,) Дробный разделитель
4 ( ) Разделитель тысячных (обычно пробел)

Функция разбиения числа на разряды

Не совсем удобно каждый раз прописывать аргументы где нужно выводить сумму. Поэтому можно гораздо упростить себе жизнь и написать небольшую функцию, которая будет конвертировать число в нужный вам формат так, где вы ее запустите. Выглядеть она может примерно так:

1
2
3
4
5
function formatSum($sum){
    $sum = number_format($sum, 2, ',', ' ');
    return $sum;
}
echo formatSum(56380.356); // 56 380,36

Такая запись будет более лаконичной, тем более, что в качестве числа, которое нужно разбить на разряды вы будете отправлять переменную. Поэтому повторное использование функции будет максимально комфортным. Надеюсь, что объяснил доходчиво. Если что, комментарии открыты, а так же добро пожаловать в телеграм-канал.

Любая сумма на развитие сайта

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *