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}