nu_utils/
float.rs

1use std::fmt::{Display, LowerExp};
2
3/// A f64 wrapper that formats whole numbers with a decimal point.
4pub struct ObviousFloat(pub f64);
5
6impl Display for ObviousFloat {
7    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
8        let val = self.0;
9        if val.fract() == 0.0 {
10            write!(f, "{val:.1}")
11        } else {
12            Display::fmt(&val, f)
13        }
14    }
15}
16
17impl LowerExp for ObviousFloat {
18    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
19        LowerExp::fmt(&self.0, f)
20    }
21}