[squeak-dev] The Inbox: Kernel-nice.690.mcz

Bert Freudenberg bert at freudenbergs.de
Sun May 20 15:42:04 UTC 2012


On 20.05.2012, at 15:56, Nicolas Cellier wrote:

> 2012/5/20 Bert Freudenberg <bert at freudenbergs.de>:
>> 
>> On 20.05.2012, at 14:54, David T. Lewis wrote:
>> 
>>> Regarding this change:
>>> 
>>>>> 2) Don't print arbitrary digits beyond Float precision, just print zeros
>>>>> (0.1 printShowingDecimalPlaces: 20) now prints '0.10000000000000000000'
>>>>> instead of '0.10000000000000000555',
>>>>> Rationale: those digits, while reflecting internal representation exactly,
>>>>> are totally insignificant and could be replaced with any other digits, while still representing the same Float.
>>> 
>>> The rationale is correct, although a contrary argument might be that
>>> the trailing '555' digits provide a visual cue as to floating point
>>> precision. The visual reminder may be useful when mixing single and
>>> double precision floats.
>>> 
>>>  (FloatArray with: 0.1) first printShowingDecimalPlaces: 20
>>>    ==> '0.10000000149011611938'
>>> 
>>>  0.1 asFloat printShowingDecimalPlaces: 20
>>>    ==> '0.10000000000000000555'
>>> 
>>> Dave
>> 
>> 
>> But
>> 
>>        0.10000000000000000555 = 0.10000000000000000000
>> 
>> What do you gain by showing the byproducts of the printing algorithm, which have nothing to do with the actual number?
>> 
>> - Bert -
>> 
> 
> That's why I prefer scheme 0.10000000000000000###, but since this is
> not a valid literal syntax, I didn't dare...
> 
> Nicolas


David: 

Float pi printShowingDecimalPlaces: 30
	==> '3.141592653589793115997963468544' (before)
	==> '3.141592653589793000000000000000' (after)

The latter seems way better to me.

- Bert -




More information about the Squeak-dev mailing list