CloudCastle UnitConvertor

Unit
in package

FinalYes

Иммутабельное определение единицы измерения.

Линейная единица: base = value · factor. Аффинная (температурные шкалы со смещением): base = value · factor + offset. Нелинейная (топливная экономичность): пара замыканий toBase/fromBase.

Точные множители хранятся дополнительно строками (Unit::$factorString) для вычислений произвольной точности BCMath.

Дельта-единицы (Unit::$isDelta) выражают разность значений абсолютной шкалы: Δ°C складывается свободно, тогда как сумма двух абсолютных температур физически бессмысленна и отклоняется арифметикой величин.

Table of Contents

Properties

$aliases  : array<string|int, mixed>
$category  : string
$code  : string
$deltaCode  : string|null
$dimension  : Dimension
$factor  : float
$factorString  : string
$fromBase  : Closure|null
$isDelta  : bool
$offset  : float
$offsetString  : string
$prefixable  : string|null
$symbol  : string
$system  : string|null
$toBase  : Closure|null

Methods

__construct()  : mixed
convertFromBase()  : float
Восстановление значения из базовой единицы категории (float-путь).
convertToBase()  : float
Приведение значения к базовой единице категории (float-путь).
displaySymbol()  : string
Отображаемый символ; при отсутствии — код единицы.
isAffine()  : bool
Аффинная ли шкала (с ненулевым смещением): абсолютные температуры °C, °F.
isBase()  : bool
Является ли единица базовой в своей категории (множитель 1, без смещения).
isNonLinear()  : bool
Является ли приведение к базе нелинейным (задано замыканиями).

Properties

$aliases read-only

public array<string|int, mixed> $aliases = []

$category read-only

public string $category

$code read-only

public string $code

$deltaCode read-only

public string|null $deltaCode = null

$factor read-only

public float $factor = 1.0

$factorString read-only

public string $factorString = '1'

$fromBase read-only

public Closure|null $fromBase = null

$isDelta read-only

public bool $isDelta = false

$offset read-only

public float $offset = 0.0

$offsetString read-only

public string $offsetString = '0'

$prefixable read-only

public string|null $prefixable = null

$symbol read-only

public string $symbol = ''

$system read-only

public string|null $system = null

$toBase read-only

public Closure|null $toBase = null

Methods

__construct()

public __construct(string $code, string $category, Dimension $dimension[, float $factor = 1.0 ][, float $offset = 0.0 ][, string $factorString = '1' ][, string $offsetString = '0' ][, null|callable(float): float $toBase = null ][, null|callable(float): float $fromBase = null ][, string $symbol = '' ][, array<int, string> $aliases = [] ][, null|string $prefixable = null ][, bool $isDelta = false ][, null|string $deltaCode = null ][, null|string $system = null ]) : mixed
Parameters
$code : string

канонический код единицы («km»)

$category : string

категория («length»)

$dimension : Dimension

вектор физической размерности

$factor : float = 1.0

множитель приведения к базовой единице категории

$offset : float = 0.0

аддитивное смещение (температурные шкалы)

$factorString : string = '1'

точный десятичный множитель для BCMath

$offsetString : string = '0'

точное десятичное смещение для BCMath

$toBase : null|callable(float): float = null

нелинейное приведение к базе

$fromBase : null|callable(float): float = null

нелинейное восстановление из базы

$symbol : string = ''

отображаемый символ («км²», «°C»)

$aliases : array<int, string> = []

альтернативные коды и написания

$prefixable : null|string = null

«si», «iec» или «both» — единица принимает префиксы

$isDelta : bool = false

единица-разность абсолютной шкалы (Δ°C)

$deltaCode : null|string = null

код парной дельта-единицы для абсолютной шкалы

$system : null|string = null

система мер («si», «imperial», «us», «nautical», «astro», «hist_ru», «typo», «iec») — для simplify()

Tags
throws
RegistryException

при некорректном определении

convertFromBase()

Восстановление значения из базовой единицы категории (float-путь).

public convertFromBase(float $value) : float
Parameters
$value : float
Return values
float

convertToBase()

Приведение значения к базовой единице категории (float-путь).

public convertToBase(float $value) : float
Parameters
$value : float
Return values
float

displaySymbol()

Отображаемый символ; при отсутствии — код единицы.

public displaySymbol() : string
Return values
string

isAffine()

Аффинная ли шкала (с ненулевым смещением): абсолютные температуры °C, °F.

public isAffine() : bool
Return values
bool

isBase()

Является ли единица базовой в своей категории (множитель 1, без смещения).

public isBase() : bool
Return values
bool

isNonLinear()

Является ли приведение к базе нелинейным (задано замыканиями).

public isNonLinear() : bool
Return values
bool
On this page

Search results