# Module DA.Numeric¶

## Functions¶

mul

: NumericScale n3 => Numeric n1 -> Numeric n2 -> Numeric n3

Multiply two numerics. Both inputs and the output may have different scales, unlike (*) which forces all numeric scales to be the same. Raises an error on overflow, rounds to chosen scale otherwise.

div

: NumericScale n3 => Numeric n1 -> Numeric n2 -> Numeric n3

Divide two numerics. Both inputs and the output may have different scales, unlike (/) which forces all numeric scales to be the same. Raises an error on overflow, rounds to chosen scale otherwise.

cast

: NumericScale n2 => Numeric n1 -> Numeric n2

Cast a Numeric. Raises an error on overflow or loss of precision.

castAndRound

: NumericScale n2 => Numeric n1 -> Numeric n2

Cast a Numeric. Raises an error on overflow, rounds to chosen scale otherwise.

shift

: NumericScale n2 => Numeric n1 -> Numeric n2

Move the decimal point left or right by multiplying the numeric value by 10^(n1 - n2). Does not overflow or underflow.

pi

: NumericScale n => Numeric n

The number pi.