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


Это и есть разделение числа на разряды. Но это не значит, что нужно ставить разделитесь вручную. В PHP это можно сделать автоматически. Можно сказать, что это типичная задача и решать ее нужно будет постоянно. Ведь практически на каждом сайте есть какая-то цена. И чтобы разделить число на разряды есть отличная, встроенная в язык PHP функция — number_format. У нее есть несколько аргументов, а именно — один, два или четыре! Если передать только один аргумент для разбиения числа на разряды, то функция отформатирует его так, что между каждыми тремя числами будет запятая.
$number = 56380;
number_format($number); // 56,380 |
$number = 56380;
number_format($number); // 56,380
Если установить 2 аргумента, то вторым из них будет числовым и означает оно сколько будет знаков после запятой, если число дробное.
$number = 56380.356;
number_format($number, 2); // 56,380.36 (округление в +) |
$number = 56380.356;
number_format($number, 2); // 56,380.36 (округление в +)
Нельзя поставить три аргумента, если вам нужно разбить сумму на разряды, возникнет ошибка. Можно установить 1, 2, или 4, но не 3.
$number = 56380.356;
number_format($number, 2, ',', ' '); // 56 380,36 |
$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 |
function formatSum($sum){
$sum = number_format($sum, 2, ',', ' ');
return $sum;
}
echo formatSum(56380.356); // 56 380,36
Такая запись будет более лаконичной, тем более, что в качестве числа, которое нужно разбить на разряды вы будете отправлять переменную. Поэтому повторное использование функции будет максимально комфортным. Надеюсь, что объяснил доходчиво. Если что, комментарии открыты, а так же добро пожаловать в телеграм-канал.
Добавить комментарий