2014-05-21 0:16 GMT+02:00 Eliot Miranda <[email protected]>: > > > > On Tue, May 20, 2014 at 1:45 PM, Sean P. DeNigris > <[email protected]>wrote: > >> Maximiliano Taborda wrote >> > Seeing the same with aconcagua >> > ... >> > teaspoons := BaseUnit named: 'teaspoons'. >> > aHalfTeaspoon := Measure amount: 1/2 unit: teaspoons. >> > anotherHalfTeaspoon := Measure amount: 0.5 unit: teaspoons. >> > >> > "#hash" >> > aHalfTeaspoon hash = anotherHalfTeaspoon hash "this evaluate to true" >> > >> > So, I don't see where is the bug. >> >> It seems to only appear when comparing measures with derived units... >> >> baseUnit := BaseUnit named: 'tablespoon'. >> unit := ProportionalDerivedUnit baseUnit: baseUnit conversionFactor: 1/3 >> named: 'teaspoon'. >> m1 := Measure amount: 1/2 unit: unit. >> m2 := Measure amount: 0.5 unit: unit. >> m1 hash = m2 hash. "this evaluate to false" >> > > > are you surprised? > > 0.5 * 0.5 = (1/2 * (1/2)) true > 0.5 / 3 = (1/2 * (1/3)) false > > You can't divide floats by 3 and get an exact answer: > > 0.5 / 3 = 0.16666666666666666 > > (1/2)/3 = (1/6) >
Good find! Use a smaller spoon, like 1/4 ;) > > >> >> >> ----- >> Cheers, >> Sean >> -- >> View this message in context: >> http://forum.world.st/Aconcagua-Hashing-Bug-tp4759622p4759745.html >> Sent from the Pharo Smalltalk Developers mailing list archive at >> Nabble.com. >> >> > > > -- > best, > Eliot >
