From f6116510a1cd2ee126d0a29230343f5db1e3ee0a Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Tue, 18 Jan 2022 21:31:14 -0700 Subject: [PATCH] print -0.0 as 0.0 (#1164) --- src/forms.rs | 4 ++-- src/heap_print.rs | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/forms.rs b/src/forms.rs index 372613b8..3ccb7575 100644 --- a/src/forms.rs +++ b/src/forms.rs @@ -635,7 +635,7 @@ impl Number { match self { &Number::Fixnum(n) => n.get_num() < 0, &Number::Integer(ref n) => &**n < &0, - &Number::Float(OrderedFloat(f)) => f.is_sign_negative(), + &Number::Float(OrderedFloat(f)) => f.is_sign_negative() && OrderedFloat(f) != -0f64, &Number::Rational(ref r) => &**r < &0, } } @@ -645,7 +645,7 @@ impl Number { match self { &Number::Fixnum(n) => n.get_num() == 0, &Number::Integer(ref n) => &**n == &0, - &Number::Float(f) => f == OrderedFloat(0f64), + &Number::Float(f) => f == OrderedFloat(0f64) || f == OrderedFloat(-0f64), &Number::Rational(ref r) => &**r == &0, } } diff --git a/src/heap_print.rs b/src/heap_print.rs index cb8e34e5..af9503df 100644 --- a/src/heap_print.rs +++ b/src/heap_print.rs @@ -933,8 +933,11 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { match n { NumberFocus::Unfocused(n) => match n { - Number::Float(fl) => { - let OrderedFloat(fl) = fl; + Number::Float(OrderedFloat(mut fl)) => { + if OrderedFloat(fl) == -0f64 { + fl = 0f64; + } + let output_str = format!("{0:<20?}", fl); push_space_if_amb!(self, &output_str, { @@ -945,9 +948,6 @@ impl<'a, Outputter: HCValueOutputter> HCPrinter<'a, Outputter> { self.print_rational(r, add_brackets); return; } - Number::Fixnum(n) => { - append_str!(self, &format!("{}", n.get_num())); - } n => { let output_str = format!("{}", n); -- 2.54.0