[squeak-dev] Float storage as Double?

Chris Muller asqueaker at gmail.com
Mon Apr 26 19:19:17 UTC 2010


> That's not true, every Float stores 64 bits.

Hi Levente, it does?  Does that mean that (Float fromIEEE32Bit:
myFloat asIEEE32BitWord) loses information?  What would be a more
precise method of serialization then?


> Just because some digits are
> not shown in the printString, it doesn't mean they aren't there:
>
> 1.01 printString. "==> '1.01'"
> 1.01 printShowingDecimalPlaces: 60. "==>
> '1.010000000000000008881784197001252323389053344726562500000000'"
>
>>
>> I can work up a "fixed" point Complex number simply by writing over the
>> internal ScaledDecimal representation using using  z real: (z real) asString
>> , but this is rather a lot of overhead and for precision less than 15ish
>> decimal places, it would be nice to use hardware.
>>
>>
>> Any relatively easy way to do this (store native precision floating
>> point)?
>
> It's done, see above.
>
>>
>> is there a faster way to truncate a ScaledDecimal than the above?
>
> Sure, don't convert it to strings. :) I think you shouldn't use
> ScaledDecimal at all, since it's just a combination of a fraction and scale.
> You only need the fraction. Use #truncateTo: to truncate a number.
>
>
> Levente
>
>>
>>
>> Lawson
>>
>>
>>
>>
>>
>>
>
>



More information about the Squeak-dev mailing list