Message-ID: <3ABA005C.4B1E1B74@earthlink.net> From: Martin Ambuhl X-Mailer: Mozilla 4.76 [en] (Win95; U) X-Accept-Language: en,zh-CN,fr,de-CH,ru MIME-Version: 1.0 Newsgroups: comp.os.msdos.djgpp Subject: Re: Strange behavior in loops!! References: <99ctq8$t29$1 AT saphir DOT jouy DOT inra DOT fr> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lines: 25 Date: Thu, 22 Mar 2001 13:35:28 GMT NNTP-Posting-Host: 64.152.162.179 X-Complaints-To: abuse AT earthlink DOT net X-Trace: newsread2.prod.itd.earthlink.net 985268128 64.152.162.179 (Thu, 22 Mar 2001 05:35:28 PST) NNTP-Posting-Date: Thu, 22 Mar 2001 05:35:28 PST Organization: EarthLink Inc. -- http://www.EarthLink.net To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Eric Wajnberg wrote: > > Now look at the following other code: > > #include > int main(void) > { > float from=.3,to=.5,by=.05; > float x; > for (x=from;x<=to;x+=by) > (void)printf("%g\n",x); > return 0; > } > > Which is exactly the same than the previous one except that all values > have been divided by 10. > > In that case, the values outputted are .3, .35, .4, and .45. > > In other words the value ".5" (i.e., the last one) is not outputted. > > Strange, isn'it? No. 5/100 = 1/20 is not a binary fraction. It cannot be expressed exactly in a binary mantissa.