list:

Previously in the list someone reported a bug in float printing:

st> 1e-4
0.00001

There is a bug in Float printing which I attached a patch. the variable
allNines should really mean all nines except the last one, so if the
last one round up, which  may not be 9 itself,  still can cause the
whole digits round up and eat a leading zero in printing.

Here is a patch to fix:

diff --git a/kernel/Float.st b/kernel/Float.st
index 3714f08..7e8e012 100644
--- a/kernel/Float.st
+++ b/kernel/Float.st
@@ -527,10 +527,11 @@ if the hardware supports it.'>
 	allNines := true.
         sameDown := true.
         sameUp := true.
+	digit := 9.
 
-        [digit := num // weight.
+        [allNines := allNines and: [digit = 9].
+	digit := num // weight.
         num := num \\ weight.
-	allNines := allNines and: [digit = 9].
         sameDown := sameDown and: [num >= eps].
         sameUp := sameUp and: [num < (weight - eps)].
 	digits := digits * 10 + digit.
_______________________________________________
help-smalltalk mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/help-smalltalk

Reply via email to