www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2001/03/22/08:46:43

Message-ID: <3ABA005C.4B1E1B74@earthlink.net>
From: Martin Ambuhl <mambuhl AT earthlink DOT net>
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>
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 <stdio.h>
> 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.

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019