]> Repositorios git - scryer-prolog.git/commitdiff
print -0.0 as 0.0 (#1164)
authorMark Thom <[email protected]>
Wed, 19 Jan 2022 04:31:14 +0000 (21:31 -0700)
committerMark Thom <[email protected]>
Wed, 19 Jan 2022 04:31:14 +0000 (21:31 -0700)
src/forms.rs
src/heap_print.rs

index 372613b819769c35668bb776e94013909b32774d..3ccb7575ebd40aa4f7ee66db52e9df9b66fb3464 100644 (file)
@@ -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,
         }
     }
index cb8e34e5cd085df5342f84fb55665c7322a78b55..af9503df04ae9a78381866052a6bd4b96c0ded26 100644 (file)
@@ -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);