CloudCastle Support API

Num
in package

FinalYes

Хелперы работы с числами.

Суперсет 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

число прописью

On this page

Search results