hi guys

here is a point where squeak and pharo could sync. Now I propose the change to 
be applied in Pharo.

http://code.google.com/p/pharo/issues/detail?id=2888

in essence
        0.1+0.2=0.3
which is normal
        since 
        (0.1+0.2) hex '3FD3333333333334'
        0.3 hex '3FD3333333333333' 
showing that we are in presence of two difference numbers.
                
So since floats are approximations anyway, I like the idea that the language 
tells me all the time.
This fits perfectly with the discussion and actions we got last year on floats.
Of course 0.1s2 + 0.2s2 = 0.3s2 is true

storeString is already conveying the right information both in squeak and pharo
        
(0.1+0.2) storeString 
        '0.30000000000000004' 
0.3 storeString 
        '0.3'

I suggest that printString on float ie on little change in printString.
So talk now. 
My point is that since we cannot perfectly lie better say it. I think that GNU 
and python are right so 
this an easy fix with a really good impact on education.

Stef 



printOn: aStream base: base
        "Handle sign, zero, and NaNs; all other values passed to 
absPrintOn:base:" 

        self isNaN ifTrue: [aStream nextPutAll: 'NaN'. ^ self]. "check for NaN 
before sign"
        self > 0.0
                ifTrue: [self absPrintExactlyOn: aStream base: base]
                ifFalse:
                        [self sign = -1
                                ifTrue: [aStream nextPutAll: '-'].
                        self = 0.0
                                ifTrue: [aStream nextPutAll: '0.0'. ^ self]
                                ifFalse: [self negated absPrintOn: aStream 
base: base]]
_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to