The answer is true on 7.6, and I don't think anything changed that for 
7.7.  Historical background aside, I think it's wrong anyway... in the 
hash book, exercise 7.20 asks to find two different fractions that are 
equal to the same float.  In other words, if f is a float, and r1 and r2 
are fractions, then r1 ~= r2 but r1 = f and r2 = f.  And those do exist...

Andres.


Stéphane Ducasse wrote:
> so andres what will be the value of
>   
>>> (13/10) = 1.3
>>>       
> in VW7.7
>
> On Jul 7, 2009, at 11:18 PM, Andres Valloud wrote:
>
>   
>> VisualWorks introduced LimitedPrecisionReal>>asFraction.  That message
>> returns the actual floating point value represented by the
>> receiver.  Of
>> course, I messed up and forgot * self sign... but that's the idea (and
>> it's fixed for 7.7).  So, in reality, you should compare
>>
>> 13/10 = 1.3 asFraction
>>
>> which will answer false, like it should.
>>
>> Andres.
>>
>>
>> John M McIntosh wrote:
>>     
>>> Let me step back and say, ok you are possibly breaking existing code,
>>> and causing all sorts of confusion for an
>>> optimization change?  So where is the justification from the
>>> optimization viewpoint? Does it make browser
>>> windows open in 1/2 the time?
>>>
>>> If it takes more time milliseconds? to produce an answer that is what
>>> people expect, then t I think it's worth it.
>>> Yes I understand that floats are inexact but people think they know
>>> how they work thus expect to be able to say
>>> (13/10) = 1.3   without having to give clues with asFloat to indicate
>>> their intent.
>>>
>>> Let me see
>>> squeak 3.10.x   (13/10) = 1.3   true
>>> Pharo 1037  (13/10) = 1.3   false
>>> VisualWorks (13/10) = 1.3   true
>>>
>>> I would classify this as a bug
>>>
>>>
>>> On 7-Jul-09, at 10:43 AM, Hernan Wilkinson wrote:
>>>
>>>
>>>       
>>>> I added this new issue that happens on the latest image.
>>>> I'm posting it here because I think it is an important bug because
>>>> it affects the number model.
>>>> The problem is related with all fractions who's denominator is not
>>>> power of two. (130/100 = 1.3 or 1/5 = 0.2, etc)
>>>> (See
>>>> Float>>adaptToFraction: rcvr andCompare: selector where it does
>>>>   ....
>>>>   "Try to avoid asTrueFraction because it can cost"
>>>>    selector == #= ifTrue: [
>>>>      rcvr denominator isPowerOfTwo ifFalse: [^false]].
>>>>
>>>>   ...)
>>>>
>>>>
>>>> Hernan.
>>>>
>>>>         
>>> --
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =====================================================================
>>> John M. McIntosh <[email protected]>   Twitter:
>>> squeaker68882
>>> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =====================================================================
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Pharo-project mailing list
>>> [email protected]
>>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>>
>>>
>>>       
>> _______________________________________________
>> Pharo-project mailing list
>> [email protected]
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>>     
>
> .
>
>   

_______________________________________________
Pharo-project mailing list
[email protected]
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to