From: Logan Capaldo Date: 2007-09-01T08:16:42+09:00 Subject: Re: 0.06 == 0.06 returns false in Ruby? On 8/31/07, Kyle Schmitt wrote: > On 8/30/07, doug meyer wrote: > > There is also a class called BigDecimal (or something like that) if > > you want to have really accurate numbers and no floating-point errors. > > A warning on things like BigDecimal. > Unless I'm mistaken it's still stored in twos compliment, which means > you'll still end up with the same sort of floating point problems > (albeit further down), and the same numbers that you can't express > exactly with a normal float, can't be expressed exactly with a > BigDecimal. > Um, 2's compliment is not a cause of floating point error. IEEE floating point numbers do not use two's complement, they have a sign bit. Two's complement is just a way of encoding the sign of a value. > You'd think some fixed point math libraries would help, but be > careful, because many of those _also_ store in twos compliment. > Again, the use of two's complement or lack thereof is totally irrelevant. > --Kyle > >