help-smalltalk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Help-smalltalk] Bug, float is printed wrongly


From:
Subject: Re: [Help-smalltalk] Bug, float is printed wrongly
Date: Sun, 12 Aug 2018 12:24:42 +0100
User-agent: mu4e 1.1.0; emacs 25.3.1

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 <address@hidden> 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
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/help-smalltalk
>>
> _______________________________________________
> help-smalltalk mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/help-smalltalk




reply via email to

[Prev in Thread] Current Thread [Next in Thread]