Files
chanlun.rs/chanlun/src/utils/format.rs
T
2026-05-25 11:07:08 +08:00

19 lines
540 B
Rust

/// Format f64 with Python :g semantics — strip trailing zeros, no scientific notation for common values
pub fn format_f64_g(value: f64) -> String {
if value.is_nan() {
return "nan".to_string();
}
if value.is_infinite() {
return if value > 0.0 {
"inf".to_string()
} else {
"-inf".to_string()
};
}
// Use high precision then trim trailing zeros
let s = format!("{:.15}", value);
let s = s.trim_end_matches('0');
s.trim_end_matches('.').to_string()
}