This is the mail archive of the
cygwin
mailing list for the Cygwin project.
RE: SV: Bug in printf ?
- From: "Dave Korn" <dave dot korn at artimi dot com>
- To: <cygwin at cygwin dot com>
- Date: Thu, 30 Jun 2005 12:59:46 +0100
- Subject: RE: SV: Bug in printf ?
----Original Message----
>From: haro@kgt.co.jp
>Sent: 30 June 2005 12:21
> From: "Peter J. Acklam" <pjacklam at online no>
> Date: Thu, 30 Jun 2005 13:06:51 +0200 (CEST)
>>>
>>>> I'm seeing small bug in printf implementation.
>>>
>>> What bug? I didn't see anything unexpected.
>>>
>>> Peter
>
> Hi Peter,
>
> How come "0.125" gets printed as "0.12", and not "1.3"?
>
> Haro
Absolutely, there's a rounding error of some sort. Compare the difference
when compiling the testcase with -mno-cygwin (i.e. using mingw maths lib):
dk@mace /test/signed/lr2> cat aaa.c
#include <stdio.h>
int main(int argc, const char **argv)
{
printf("%0.2f\n", 0.105);
printf("%0.2f\n", 0.115);
printf("%0.2f\n", 0.125);
printf("%0.2f\n", 0.135);
return 0;
}
dk@mace /test/signed/lr2> gcc -O0 -g aaa.c -o aaa-c
dk@mace /test/signed/lr2> ./aaa-c.exe
0.10
0.12
0.12
0.14
dk@mace /test/signed/lr2> gcc -O0 -g -mno-cygwin aaa.c -o aaa-m
dk@mace /test/signed/lr2> ./aaa-m.exe
0.11
0.12
0.13
0.14
dk@mace /test/signed/lr2>
cheers,
DaveK
--
Can't think of a witty .sigline today....
--
Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple
Problem reports: http://cygwin.com/problems.html
Documentation: http://cygwin.com/docs.html
FAQ: http://cygwin.com/faq/