double to int conversion yields strange results
From: Bjørn Augestad (boa_at_metasystems.no)
Date: 02/11/05
- Next message: Jens.Toerring_at_physik.fu-berlin.de: "Re: Your opinions on some code, please"
- Previous message: manoj1978_at_gmail.com: "Re: why this program is not crashing"
- Next in thread: Richard Bos: "Re: double to int conversion yields strange results"
- Reply: Richard Bos: "Re: double to int conversion yields strange results"
- Reply: Michael Mair: "Re: double to int conversion yields strange results"
- Reply: CBFalconer: "Re: double to int conversion yields strange results"
- Reply: jacob navia: "Re: double to int conversion yields strange results"
- Reply: Tim Rentsch: "Re: double to int conversion yields strange results"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Fri, 11 Feb 2005 11:01:49 GMT
Below is a program which converts a double to an integer in two
different ways, giving me two different values for the int. The basic
expression is 1.0 / (1.0 * 365.0) which should be 365, but one variable
becomes 364 and the other one becomes 365.
Does anyone have any insight to what the problem is?
Thanks in advance.
Bjørn
$ cat d.c
#include <stdio.h>
int main(void)
{
double dd, d = 1.0 / 365.0;
int n, nn;
n = 1.0 / d;
dd = 1.0 / d;
nn = dd;
printf("n==%d nn==%d dd==%f\n", n, nn, dd);
return 0;
}
$ gcc -Wall -O0 -ansi -pedantic -W -Werror -o d d.c
$ ./d
n==364 nn==365 dd==365.000000
$ gcc -v
Reading specs from /usr/lib/gcc/i386-redhat-linux/3.4.2/specs
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man
--infodir=/usr/share/info --enable-shared --enable-threads=posix
--disable-checking --with-system-zlib --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-java-awt=gtk
--host=i386-redhat-linux
Thread model: posix
gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
$
- Next message: Jens.Toerring_at_physik.fu-berlin.de: "Re: Your opinions on some code, please"
- Previous message: manoj1978_at_gmail.com: "Re: why this program is not crashing"
- Next in thread: Richard Bos: "Re: double to int conversion yields strange results"
- Reply: Richard Bos: "Re: double to int conversion yields strange results"
- Reply: Michael Mair: "Re: double to int conversion yields strange results"
- Reply: CBFalconer: "Re: double to int conversion yields strange results"
- Reply: jacob navia: "Re: double to int conversion yields strange results"
- Reply: Tim Rentsch: "Re: double to int conversion yields strange results"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|