Trim trailing zeroes also for custom precision numbers

This commit is contained in:
PaddiM8 2022-06-01 02:18:57 +02:00
parent 074643ea4f
commit 5f9ff40279

View File

@ -247,20 +247,27 @@ impl KalkValue {
}
pub fn to_string_big(&self) -> String {
fn trim_num(num_str: String) -> String {
num_str
.trim_end_matches('0')
.trim_end_matches('.')
.to_string()
}
if let KalkValue::Number(real, imaginary, _) = self {
if !self.has_imaginary() {
return real.to_string();
return trim_num(real.to_string());
}
let sign = if imaginary < &0f64 { "-" } else { "+" };
format!(
"{} {} {}i",
spaced(&real.to_string()),
spaced(&trim_num(real.to_string())),
sign,
spaced(&imaginary.to_string())
spaced(&trim_num(imaginary.to_string()))
)
} else {
self.to_string()
trim_num(self.to_string())
}
}