[squeak-dev] Float parsed as a Fraction bug

Levente Uzonyi leves at elte.hu
Thu Aug 7 18:47:38 UTC 2014


On Thu, 7 Aug 2014, Eliot Miranda wrote:

> Hi Juan,
> 
> On Thu, Aug 7, 2014 at 9:40 AM, J. Vuletich (mail lists) <juanlists at jvuletich.org> wrote:
>
>       Hi Folks,
>
>       Just tried Smalltalk-80 (actually Apple Smalltalk-80 running in Mini vMac).
>       1e-3 "printIt" (1/1000)
>       1e-3 class "printIt" Fraction
>       1e3 "printIt" 1000
>       1e3 class "printIt" SmallInteger
>
>       This has always been the behavior in Squeak too.
> 
> 
> What happens if you try compiling a method containing a literal Fraction and both debug it and decompile it. 
>
>       Also check these comments from Dan: http://lists.squeakfoundation.org/pipermail/squeak-dev/2000-March/013368.html
> 
> 
> Dan doesn't say anything about Fraction literals in this message.

I guess the key parts are

>>Lowercase 'e' is used to designate the exponent of a floating point
>>number (as are 'd' and 'q').  It is illegal to specify an exponent for
>>what is otherwise an integer--eg, 10e10 is illegal, while 10.0e10 is
>>legal.

and

"Radix, digits and exponent defined analogously over ints, largeInts, and 
Floats."

>  
>
>       I don't think this is a bug at all.
> 
> 
> What, that 1e-3 is a Fraction, not a Float?

If 1e-3 is a Float, shouldn't 1e3 be a Float too?


Levente


More information about the Squeak-dev mailing list