From owner-freebsd-hackers@FreeBSD.ORG Mon Jul 12 07:56:11 2004 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A189016A4CE for ; Mon, 12 Jul 2004 07:56:11 +0000 (GMT) Received: from hanoi.cronyx.ru (hanoi.cronyx.ru [144.206.181.53]) by mx1.FreeBSD.org (Postfix) with ESMTP id B4D2D43D1F for ; Mon, 12 Jul 2004 07:56:10 +0000 (GMT) (envelope-from rik@cronyx.ru) Received: (from root@localhost) by hanoi.cronyx.ru id i6C7r9V2026255 for freebsd-hackers@freebsd.org.checked; (8.12.8/vak/2.1) Mon, 12 Jul 2004 11:53:09 +0400 (MSD) (envelope-from rik@cronyx.ru) Received: from cronyx.ru (hi.cronyx.ru [144.206.181.94]) by hanoi.cronyx.ru with ESMTP id i6C7oBAk026115; (8.12.8/vak/2.1) Mon, 12 Jul 2004 11:50:12 +0400 (MSD) (envelope-from rik@cronyx.ru) Message-ID: <40F242AC.5020109@cronyx.ru> Date: Mon, 12 Jul 2004 11:50:04 +0400 From: Roman Kurakin User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6b) Gecko/20031208 X-Accept-Language: en-us, en MIME-Version: 1.0 To: Dmitry Morozovsky References: <20040711210219.J84500@woozle.rinet.ru> In-Reply-To: <20040711210219.J84500@woozle.rinet.ru> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit cc: freebsd-hackers@freebsd.org Subject: Re: gcc strangeness X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 12 Jul 2004 07:56:11 -0000 Dmitry Morozovsky wrote: >Dear colleagues, > >one of my friends has raisen very strange issue regarding gcc rounding: > >marck@woozle:/tmp/tsostik> uname -r >4.10-STABLE >marck@woozle:/tmp/tsostik> gcc -v >Using builtin specs. >gcc version 2.95.4 20020320 [FreeBSD] > >marck@woozle:/tmp/tsostik> cat x.c >#include >int main () >{ > float a; > for(a=0.01;a<=0.1; a+=0.01) > printf("%f %.3f %d\n", a*100, a*100, (int)(a*100)); > > I believe this should more correct: printf ("%f %.3f %d\n", a*100, a*100, (int)(a*100+.5)); rik >return 0; >} >marck@woozle:/tmp/tsostik> cc x.c >marck@woozle:/tmp/tsostik> ./a.out >1.000000 1.000 0 >2.000000 2.000 1 >3.000000 3.000 2 >4.000000 4.000 3 >5.000000 5.000 5 >6.000000 6.000 6 >7.000000 7.000 7 >8.000000 8.000 7 >9.000000 9.000 8 >9.999999 10.000 9 > >Any comments? > > >Sincerely, >D.Marck [DM5020, MCK-RIPE, DM3-RIPN] >------------------------------------------------------------------------ >*** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck@rinet.ru *** >------------------------------------------------------------------------ >_______________________________________________ >freebsd-hackers@freebsd.org mailing list >http://lists.freebsd.org/mailman/listinfo/freebsd-hackers >To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@freebsd.org" > > > >