The following seem to be related. 1/5000 is 2e-4; 1/1 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
$ 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.1
st>
On Sat, Aug 11, 2018 at 1:05 PM Tommy Pettersson wrote:
> Hi,
>
> The float 1e-4 gets too many zeros when printed. This
Hi Bill,
I think the ZeroDivide exception is unrelated, and caused by your gst being
compiled with option -pie (the default in many distros). If so, you would
get the same exception for 0.05 and many other numbers. Try compiling gst
with -no-pie to see if the exception goes away.
/Tommy
on debian 9:
$ gst
st> x := 1e-4
Object: 1 error: The program attempted to divide a number by zero
ZeroDivide(Exception)>>signal (ExcHandling.st:254)
SmallInteger(Number)>>zeroDivide (SysExcept.st:1426)
Fraction>>setNumerator:setDenominator: (Fraction.st:485)
Fraction
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.1
st> x+x
0.0002
Kind regards,
Tommy