Ratio
Represents a ratio of two integers, which can be used to represent arbitrary precision numbers on-chain.
Associated functions
from_data
Ratio::from_data(data: Data) -> Ratio
new
Ratio::new(top: Int, bottom: Int) -> Ratio
Getters
bottom
The denominator of the Ratio.
ratio.bottom -> Int
top
The numerator of the Ratio.
ratio.top -> Int
Operators
==
Exact equals: returns true if the denominators are equal and the numerators are equal.
Ratio == Ratio -> Bool
Use ratio.equals() for a non-exact equality comparison.
!=
Exact not-equals: returns false if the denomitors aren't equal or the numerators aren't equal.
Ratio != Ratio -> Bool
+
Ratio + Ratio -> Ratio
Ratio + Int -> Ratio
-
Ratio - Ratio -> Ratio
Ratio - Int -> Ratio
*
Ratio * Ratio -> Ratio
Ratio * Int -> Ratio
/
Ratio / Ratio -> Ratio
Ratio / Int -> Ratio
<
Ratio < Ratio -> Bool
Ratio < Int -> Bool
<=
Ratio <= Ratio -> Bool
Ratio <= Int -> Bool
>
Ratio > Ratio -> Bool
Ratio > Int -> Bool
>=
Ratio >= Ratio -> Bool
Ratio >= Int -> Bool
Methods
ceil
Rounds a Ratio upwards, returning an Int.
ratio.ceil() -> Int
equals
Non-exact equality comparison, which checks that a.top * b.bottom == b.top * a.bottom.
a.equals(b: Ratio) -> Bool
floor
Rounds a Ratio downwards, returning an Int.
ratio.floor() -> Int
round
Rounds a Ratio to the nearest Int.
ratio.round() -> Int
to_real
Truncates the Ratio to Real (a Real is equivalent to a Ratio with 1_000_000 as a denominator).
ratio.to_real() -> Real
trunc
Rounds a Ratio towards zero, returning an Int.
ratio.trunc() -> Int