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}