"Gautam Sethi" <email@example.com> wrote in message news:firstname.lastname@example.org... > On Saturday, January 26, 2013 8:53:06 PM UTC-5, Roger Stafford wrote: >> Gautam Sethi <email@example.com> wrote in message >> <firstname.lastname@example.org>... >> >> > Folks, this is driving me nuts! Can someone explain what may be going >> > on? ...... >> >> - - - - - - - - - >> >> Welcome to the world of binary arithmetic, which is what your computer >> is using. It cannot get an exact result for .1, .2, .3, and .4, just as >> your decimal calculator cannot get an exact result for 1/3. All of your >> findings stem from that and the different roundings that are a >> consequence. Remember that the "==" and 'intersect' operations expect >> exact equality right down to the smallest bit. >> >> >> >> Roger Stafford > > Sure, but why pick on poor .3?
We don't "pick on" poor 0.3 any more than decimal calculations "pick on" 2/3 (which when rounded is 0.6666 ... *snip arbitrary number of 6's* ... 67.)
> Why do I not see the same issue for .2 or .4 or the other numbers?
Because the way we calculate the result of the colon operator happens to work out that the roundoff error results in the exact double precision representation of 0.2 and 0.4.
For more information, see question 1 in the Math/Algorithms section of the newsgroup FAQ and the references it includes (particularly the Cleve's Corner article.)