Numbers
Rounding is half-to-even (round(2.5) is 2), matching JSONata and XPath.
number(value: string | number | boolean): numberParses strings and booleans into a number (`undefined` if not parseable).
formatBase(value: number, radix?: number): stringRenders an integer in the given radix (2–36, default 10).
floor(value: number): numberRounds down to the nearest integer.
ceil(value: number): numberRounds up to the nearest integer.
round(value: number, precision?: number): numberRounds to `precision` digits, half-to-even like JSONata.
abs(value: number): numberAbsolute value.
power(base: number, exponent: number): number`base` raised to `exponent`.
sqrt(value: number): numberSquare root (`undefined` for negative input).
random(): numberPseudo-random number in [0, 1).
Conversion
number
number(value: string | number | boolean): numberParses strings and booleans into a number (undefined if not parseable).
taxRate: number(item.taxRateStr)formatBase
formatBase(value: number, radix?: number): stringRenders an integer in the given radix (2–36, default 10).
hex: formatBase(color.value, 16)Rounding
floor
floor(value: number): numberRounds down to the nearest integer.
pages: floor(catalog.items / pageSize)ceil
ceil(value: number): numberRounds up to the nearest integer.
pages: ceil(catalog.items / pageSize)round
round(value: number, precision?: number): numberRounds to precision digits, half-to-even like JSONata.
total: round(item.price * item.qty, 2)Math
abs
abs(value: number): numberAbsolute value.
delta: abs(order.total - order.paid)power
power(base: number, exponent: number): numberbase raised to exponent.
area: power(shape.side, 2)sqrt
sqrt(value: number): numberSquare root (undefined for negative input).
side: sqrt(shape.area)Random
random
random(): numberPseudo-random number in [0, 1).
jitter: random() * 100Playground
{ "total": 71.96, "parsed": 42.5, "hex": "ff", "root": 9 }
{ total: number; parsed: number; hex: string; root: number }