This repository has been archived on 2025-08-04. You can view files and clone it, but cannot push or open issues or pull requests.
rhaj/_archive/rhai_engine/rhaibook/language/num-fn.md
2025-04-04 08:28:07 +02:00

8.0 KiB
Raw Blame History

Numeric Functions

{{#include ../links.md}}

Integer Functions

The following standard functions are defined.

Function Not available under Package Description
is_odd method and property [ArithmeticPackage][built-in packages] returns true if the value is an odd number, otherwise false
is_even method and property [ArithmeticPackage][built-in packages] returns true if the value is an even number, otherwise false
min [LogicPackage][built-in packages] returns the smaller of two numbers
max [LogicPackage][built-in packages] returns the larger of two numbers
to_float [no_float] [BasicMathPackage][built-in packages] convert the value into f64 (f32 under [f32_float])
to_decimal non-[decimal] [BasicMathPackage][built-in packages] convert the value into [Decimal][rust_decimal]

Signed Numeric Functions

The following standard functions are defined in the [ArithmeticPackage][built-in packages] (excluded when using a [raw Engine]) and operate on i8, i16, i32, i64, f32, f64 and [Decimal][rust_decimal] (requires [decimal]) only.

Function Description
abs absolute value
sign returns (INT) 1 if negative, +1 if positive, 0 if zero
is_zero method and property returns true if the value is zero, otherwise false

Floating-Point Functions

The following standard functions are defined in the [BasicMathPackage][built-in packages] (excluded when using a [raw Engine]) and operate on f64 (f32 under [f32_float]) and [Decimal][rust_decimal] (requires [decimal]) only.

Category Supports Decimal Functions
Trigonometry yes sin, cos, tan
Trigonometry no sinh, cosh, tanh in radians, hypot(x,y)
Arc-trigonometry no asin, acos, atan(v), atan(x,y), asinh, acosh, atanh in radians
Square root yes sqrt
Exponential yes exp (base e)
Logarithmic yes ln (base e)
Logarithmic yes log (base 10)
Logarithmic no log(x,base)
Rounding yes floor, ceiling, round, int, fraction methods and properties
Conversion yes [to_int], [to_decimal] (requires [decimal]), [to_float] (not under [no_float])
Conversion no to_degrees, to_radians
Comparison yes min, max (also inter-operates with integers)
Testing no is_nan, is_finite, is_infinite methods and properties

Decimal Rounding Functions

The following rounding methods are defined in the [BasicMathPackage][built-in packages] (excluded when using a [raw Engine]) and operate on [Decimal][rust_decimal] only, which requires the [decimal] feature.

Rounding type Behavior Methods
None floor, ceiling, int, fraction methods and properties
Banker's rounding round to integer round method and property
Banker's rounding round to specified number of decimal points round(decimal points)
Round up away from zero round_up(decimal points)
Round down towards zero round_down(decimal points)
Round half-up mid-point away from zero round_half_up(decimal points)
Round half-down mid-point towards zero round_half_down(decimal points)

Parsing Functions

The following standard functions are defined in the [BasicMathPackage][built-in packages] (excluded when using a [raw Engine]) to parse numbers.

Function No available under Description
[parse_int] converts a [string] to INT with an optional radix
[parse_float] [no_float] and non-[decimal] converts a [string] to FLOAT ([Decimal][rust_decimal] under [no_float] and [decimal])
[parse_decimal] non-[decimal] converts a [string] to [Decimal][rust_decimal]

Formatting Functions

The following standard functions are defined in the [BasicStringPackage][built-in packages] (excluded when using a [raw Engine]) to convert integer numbers into a [string] of hex, octal or binary representations.

Function Description
[to_binary] converts an integer number to binary
[to_octal] converts an integer number to octal
[to_hex] converts an integer number to hex

These formatting functions are defined for all available integer numbers i.e. INT, u8, i8, u16, i16, u32, i32, u64, i64, u128 and i128 unless disabled by feature flags.

Floating-point Constants

The following functions return standard mathematical constants.

Function Description
PI returns the value of π
E returns the value of e

Numerical Functions for Scientific Computing

Check out the [rhai-sci] crate for more numerical functions.