From: Hal Fulton Date: 2004-10-28T05:36:22+09:00 Subject: Re: Rounding error, (100.0 * 9.95).to_i == 994 Jason DiCioccio wrote: > > I'm confused now.. 100.0 * 9.95 is clearly 995. So what exactly is the > issue with floating point numbers is making this come out to > 994.999999999983 (or wahtever ;))? If every language is plagued by this > problem, then I'd be curious to know the history behind it.. > :) It's not history, it's math. Here's the short explanation. Remember repeating decimals, which you learned about in elementary school? For example, 1/3 = 0.33333... can't be expressed in a finite number of digits. Likewise 0.95 can't be expressed in a finite number of (binary) digits. When you convert it to binary, it repeats infinitely. Hal