Num
in package
Хелперы работы с числами.
Суперсет Illuminate\Support\Number: форматирование, проценты,
человекочитаемые размеры файлов и сокращения, ограничение диапазоном,
денежные суммы и число прописью (последнее — без ext-intl, в отличие от
illuminate). Порядковые суффиксы делегируются cloudcastle/inflector.
Table of Contents
Methods
- abbreviate() : string
- Сокращённая запись большого числа: `abbreviate(1250000)` → «1.3M».
- between() : bool
- Внутри ли число диапазона (границы включительно).
- clamp() : float|int
- Ограничить число диапазоном: `clamp(15, 1, 10)` → 10.
- currency() : string
- Денежная сумма с символом валюты: `currency(1234.5, 'RUB')` → «1 234,50 ₽».
- fileSize() : string
- Человекочитаемый размер данных: `fileSize(1536)` → «1,5 КБ».
- format() : string
- Число с разделителями групп разрядов: `format(1234567.891, 2)` → «1 234 567,89».
- ordinal() : string
- Порядковая форма числа: `ordinal(2)` → «2nd» (en), «2-й» (ru).
- pad() : string
- Дополнить число нулями слева до заданной ширины: `pad(7, 3)` → «007».
- percentage() : float
- Значение процента от числа: `percentage(12.5, 200)` → 25.0.
- percentOf() : float
- Сколько процентов составляет `$part` от `$total`: `percentOf(25, 200)` → 12.5.
- spell() : string
- Число прописью: `spell(21)` → «двадцать один» (ru), «twenty-one» (en).
Methods
abbreviate()
Сокращённая запись большого числа: `abbreviate(1250000)` → «1.3M».
public
static abbreviate(float|int $number[, int $precision = 1 ]) : string
Parameters
- $number : float|int
-
число
- $precision : int = 1
-
знаков после точки
Return values
string —Сокращённая запись большого числа: abbreviate(1250000) → «1.3M»
between()
Внутри ли число диапазона (границы включительно).
public
static between(float|int $number, float|int $min, float|int $max) : bool
Parameters
- $number : float|int
-
значение
- $min : float|int
-
нижняя граница
- $max : float|int
-
верхняя граница
Return values
bool —Внутри ли число диапазона (границы включительно)
clamp()
Ограничить число диапазоном: `clamp(15, 1, 10)` → 10.
public
static clamp(float|int $number, float|int $min, float|int $max) : float|int
Parameters
- $number : float|int
-
значение
- $min : float|int
-
нижняя граница
- $max : float|int
-
верхняя граница
Return values
float|int —Ограничить число диапазоном: clamp(15, 1, 10) → 10
currency()
Денежная сумма с символом валюты: `currency(1234.5, 'RUB')` → «1 234,50 ₽».
public
static currency(float|int $amount[, string $currency = 'RUB' ][, int $decimals = 2 ][, string $decimalSeparator = ',' ][, string $thousandsSeparator = ' ' ]) : string
Символ подбирается по ISO-коду; для неизвестного кода используется сам код. Дефолты — русская типографика (пробел, запятая, символ после суммы).
Parameters
- $amount : float|int
-
сумма
- $currency : string = 'RUB'
-
ISO-код валюты (RUB, USD, EUR…)
- $decimals : int = 2
-
знаков после разделителя
- $decimalSeparator : string = ','
-
разделитель дробной части
- $thousandsSeparator : string = ' '
-
разделитель групп разрядов
Return values
string —сумма с символом валюты
fileSize()
Человекочитаемый размер данных: `fileSize(1536)` → «1,5 КБ».
public
static fileSize(int $bytes[, int $precision = 1 ][, string $locale = 'ru' ]) : string
Шкала двоичная (1024); язык единиц — ru или en.
Parameters
- $bytes : int
-
размер в байтах (неотрицательный)
- $precision : int = 1
-
знаков после разделителя
- $locale : string = 'ru'
-
язык единиц: «ru» или «en»
Return values
string —Человекочитаемый размер данных: fileSize(1536) → «1,5 КБ»
format()
Число с разделителями групп разрядов: `format(1234567.891, 2)` → «1 234 567,89».
public
static format(float|int $number[, int $decimals = 0 ][, string $decimalSeparator = ',' ][, string $thousandsSeparator = ' ' ]) : string
Дефолты — русская типографика (пробел и запятая); для других локалей разделители передаются явно.
Parameters
- $number : float|int
-
число
- $decimals : int = 0
-
знаков после разделителя
- $decimalSeparator : string = ','
-
разделитель дробной части
- $thousandsSeparator : string = ' '
-
разделитель групп разрядов
Return values
string —Число с разделителями групп разрядов: format(1234567.891, 2) → «1 234 567,89»
ordinal()
Порядковая форма числа: `ordinal(2)` → «2nd» (en), «2-й» (ru).
public
static ordinal(int $number[, Language $language = Language::English ]) : string
Делегирует cloudcastle/inflector — суффикс согласуется по правилам языка.
Parameters
- $number : int
-
число
- $language : Language = Language::English
-
язык суффикса
Return values
string —Порядковая форма числа: ordinal(2) → «2nd» (en), «2-й» (ru)
pad()
Дополнить число нулями слева до заданной ширины: `pad(7, 3)` → «007».
public
static pad(int $number, int $length) : string
Parameters
- $number : int
-
неотрицательное число
- $length : int
-
итоговая ширина строки
Return values
string —Дополнить число нулями слева до заданной ширины: pad(7, 3) → «007»
percentage()
Значение процента от числа: `percentage(12.5, 200)` → 25.0.
public
static percentage(float|int $percent, float|int $total) : float
Parameters
- $percent : float|int
-
процент
- $total : float|int
-
число
Return values
float —Значение процента от числа: percentage(12.5, 200) → 25.0
percentOf()
Сколько процентов составляет `$part` от `$total`: `percentOf(25, 200)` → 12.5.
public
static percentOf(float|int $part, float|int $total[, int $precision = 2 ]) : float
Для нулевого $total возвращается 0.0 (fail-safe: деление на ноль
в метриках — штатная ситуация пустой выборки).
Parameters
- $part : float|int
-
часть
- $total : float|int
-
целое
- $precision : int = 2
-
знаков после запятой у результата
Return values
float —Сколько процентов составляет $part от $total: percentOf(25, 200) → 12.5
spell()
Число прописью: `spell(21)` → «двадцать один» (ru), «twenty-one» (en).
public
static spell(int $number[, string $locale = 'ru' ]) : string
Работает без ext-intl (в отличие от Illuminate\Support\Number::spell): целые числа до триллионов, с корректными русскими формами разрядов (одна тысяча / две тысячи / пять тысяч).
Parameters
- $number : int
-
целое число
- $locale : string = 'ru'
-
язык: «ru» или «en»
Return values
string —число прописью