rust_finprim/
rounding.rs

1/// Rounding modes to be used by FloatLike types.
2#[derive(Clone, Copy, PartialEq, Eq, Debug)]
3pub enum RoundingMode {
4    /// "Bankers Rounding"
5    /// Rounds .5 to the nearest even number, typical rounding behavior otherwise.
6    /// e.g. 2.5 becomes 2, 3.5 becomes 4.
7    HalfToEven,
8    /// Rounds .5 away from zero (typical rounding behavior).
9    /// e.g. 2.5 becomes 3, -2.5 becomes -3.
10    HalfAwayFromZero,
11    /// Rounds .5 towards zero.
12    /// e.g. 2.5 becomes 2, -2.5 becomes -2.
13    HalfTowardZero,
14    /// Rounds towards zero (typical round down).
15    /// e.g. 2.7 becomes 2, -2.7 becomes -2.
16    TowardZero,
17    /// Rounds towards negative/positive infinity (typical round up).
18    /// e.g. 2.3 becomes 3, -2.3 becomes -3.
19    AwayFromZero,
20    /// Rounds towards negative infinity (round positive numbers down and negative numbers "up").
21    /// e.g. 2.7 becomes 2, -2.3 becomes -3.
22    ToNegativeInfinity,
23    /// Rounds towards positive infinity (round positive numbers up and negative numbers "down").
24    /// e.g. 2.3 becomes 3, -2.7 becomes -2.
25    ToInfinity, // And beyond
26}