The following seem to be related. 1/5000 is 2e-4; 1/10000 is 1e-4 and so all these lines should give the same result of -4. The conversion "asExactFraction", which is called from the Float.st version of floorLog:, causes a -5 answer which is wrong:
st>gst --version GNU Smalltalk version 3.2.92-b033a21c st> 1/5000 floorLog:10 -4 st> 1/10000 floorLog:10 -4 st> 1e-4 asExactFraction 13743895/137438953472 st> (1e-4 asExactFraction) floorLog:10 -5 st> (2e-4 asExactFraction) floorLog:10 -4 The problem is caused by converting 1/10000 to 13743895/137438953472, which is just less than 1/10000, so the floor operation shifts it to 1/100000 and gets -5. Thomas Worthington Blake McBride writes: > $ gst --version > GNU Smalltalk version 3.2.92-dfe4b56 > $ gst > GNU Smalltalk ready > > st> 1e1 > 10.0 > st> 1e0 > 1.0 > st> 1e-1 > 0.1 > st> 1e-2 > 0.01 > st> 1e-3 > 0.001 > st> 1e-4 > 0.00001 > st> > > > > > > On Sat, Aug 11, 2018 at 1:05 PM Tommy Pettersson <p...@lysator.liu.se> wrote: > >> Hi, >> >> The float 1e-4 gets too many zeros when printed. This happens on version >> 3.2.5 and on the current master branch at git:// >> git.sv.gnu.org/smalltalk.git, >> on both 32-bit and 64-bit. >> >> Example: >> st> x := 1e-4 >> 0.00001 >> st> x+x >> 0.0002 >> >> Kind regards, >> Tommy >> >> _______________________________________________ >> help-smalltalk mailing list >> help-smalltalk@gnu.org >> https://lists.gnu.org/mailman/listinfo/help-smalltalk >> > _______________________________________________ > help-smalltalk mailing list > help-smalltalk@gnu.org > https://lists.gnu.org/mailman/listinfo/help-smalltalk _______________________________________________ help-smalltalk mailing list help-smalltalk@gnu.org https://lists.gnu.org/mailman/listinfo/help-smalltalk