math
The math
module provides essential mathematical operations for precise numeric calculations, particularly focused on rounding operations with various rounding modes.
Trait | Value |
---|---|
Module type | util |
Implementation | C++ |
Parallelism | sequential |
Functions
round()
The function rounds a numeric value to a specified number of decimal places using various rounding modes. This provides precise control over how numbers are rounded.
Input:
value: Double
➡ The numeric value to be rounded.precision: Integer (default = 0)
➡ The number of decimal places to round to. Positive values round to decimal places, zero rounds to the nearest integer, and negative values round to tens, hundreds, etc.mode: String (default = "HALF_UP")
➡ The rounding mode to use. Available modes:"CEILING"
- Always round towards positive infinity"FLOOR"
- Always round towards negative infinity"UP"
- Always round away from zero"DOWN"
- Always round towards zero"HALF_UP"
- Round to nearest neighbor, ties round away from zero"HALF_DOWN"
- Round to nearest neighbor, ties round towards zero"HALF_EVEN"
- Round to nearest neighbor, ties round to even number (banker’s rounding)"UNNECESSARY"
- Assert that no rounding is necessary (throws error if rounding would occur)
Output:
Double
➡ The rounded numeric value.
Usage:
// Basic rounding to nearest integer (default HALF_UP mode)
RETURN math.round(2.5) AS result;
// Returns: 3.0
// Round to 2 decimal places
RETURN math.round(3.14159, 2) AS result;
// Returns: 3.14
// Round using CEILING mode
RETURN math.round(1.234, 2, "CEILING") AS result;
// Returns: 1.24
// Round using FLOOR mode
RETURN math.round(1.234, 2, "FLOOR") AS result;
// Returns: 1.23
// Round to tens place (negative precision)
RETURN math.round(1234, -1) AS result;
// Returns: 1230.0
// Round using HALF_EVEN (banker's rounding)
RETURN math.round(2.5, 0, "HALF_EVEN") AS result;
// Returns: 2.0 (rounds to nearest even)
RETURN math.round(3.5, 0, "HALF_EVEN") AS result;
// Returns: 4.0 (rounds to nearest even)
⚠️
The UNNECESSARY
rounding mode will throw an error if the input value requires rounding. Use this mode when you want to assert that a value should already be at the desired precision.