[Pharo-dev] float & fraction equality bug
nicolas.cellier.aka.nice at gmail.com
Thu Nov 9 12:20:56 EST 2017
2017-11-09 18:11 GMT+01:00 Raffaello Giulietti <
raffaello.giulietti at lifeware.ch>:
> On 2017-11-09 15:55, Nicolas Cellier wrote:
>> 2017-11-09 15:48 GMT+01:00 Tudor Girba <tudor at tudorgirba.com <mailto:
>> tudor at tudorgirba.com>>:
>> Thanks for the answer. The example I provided was for convenience.
>> I still do not understand why it is wrong to expect 0.1 = (1/10) to
>> be true.
>> Because there are infinitely many different Fraction that would be
>> "equal" to 0.1 then.
>> The first effect is that you have
>> a = b
>> a = c
>> b < c
>> You are breaking the fact that you can sort these Numbers (are they
>> Magnitude anymore?)
>> You are breaking the fact that you can mix these Numbers as Dictionary
>> keys (sometimes the dictionary would have 2 elements, sometimes 3,
> Fractions are not reliable keys anyway:
> (Fraction numerator: 1 denominator: 3) = (Fraction numerator: 2
> denominator: 6)
> evaluates to true while
> (Fraction numerator: 1 denominator: 3) hash = (Fraction numerator: 2
> denominator: 6) hash
> evaluates to false
> You are violating the invariants described in class comment in this case,
and thus missusing Fraction.
So it's not anymore the problem of the library
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Pharo-dev