1e-4 printing bug
Derek Zhou <[email protected]>
| Newsgroups | gmane.comp.lang.smalltalk.gnu.general |
|---|---|
| Message-ID | <[email protected]> |
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: _______________________________________________ help-smalltalk mailing list [email protected] https://lists.gnu.org/mailman/listinfo/help-smalltalk
allNines.patch
(text/x-diff, 580 B)
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.