Re: Bug, float is printed wrongly

"" <[email protected]>
Newsgroups gmane.comp.lang.smalltalk.gnu.general
Message-ID <[email protected]>
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 <[email protected]> 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
>> [email protected]
>> https://lists.gnu.org/mailman/listinfo/help-smalltalk
>>
> _______________________________________________
> help-smalltalk mailing list
> [email protected]
> https://lists.gnu.org/mailman/listinfo/help-smalltalk
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.