Skip to content

Numbers ​

Rounding is half-to-even (round(2.5) is 2), matching JSONata and XPath.

Conversion ​

number ​

number(value: string | number | boolean): number

Parses strings and booleans into a number (undefined if not parseable).

typeflow
taxRate: number(item.taxRateStr)

formatBase ​

formatBase(value: number, radix?: number): string

Renders an integer in the given radix (2–36, default 10).

typeflow
hex: formatBase(color.value, 16)

Rounding ​

floor ​

floor(value: number): number

Rounds down to the nearest integer.

typeflow
pages: floor(catalog.items / pageSize)

ceil ​

ceil(value: number): number

Rounds up to the nearest integer.

typeflow
pages: ceil(catalog.items / pageSize)

round ​

round(value: number, precision?: number): number

Rounds to precision digits, half-to-even like JSONata.

typeflow
total: round(item.price * item.qty, 2)

Math ​

abs ​

abs(value: number): number

Absolute value.

typeflow
delta: abs(order.total - order.paid)

power ​

power(base: number, exponent: number): number

base raised to exponent.

typeflow
area: power(shape.side, 2)

sqrt ​

sqrt(value: number): number

Square root (undefined for negative input).

typeflow
side: sqrt(shape.area)

Random ​

random ​

random(): number

Pseudo-random number in [0, 1).

typeflow
jitter: random() * 100

Playground ​

Mapping✔Playground ↗
Input JSON
Output
{
  "total": 71.96,
  "parsed": 42.5,
  "hex": "ff",
  "root": 9
}
inferred type{ total: number; parsed: number; hex: string; root: number }

Released under the MIT License.