>Submitter-Id:  net
>Originator:    Stefan Karrmann
>Organization:  
>Confidential:  no
>Synopsis:      nearbyint returns always 895
>Severity:      serious
>Priority:      medium
>Category:      c
>Class:         wrong-code
>Release:       3.0.3 (Debian testing/unstable)
>Environment:
System: Linux johann 2.4.21 #2 Sun Aug 17 20:52:39 CEST 2003 i686 unknown
Architecture: i686

        
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ./configure --enable-languages=c++
>Description:
        Calling nearbyint returns always 895.0
>How-To-Repeat:
        Compile and run:

#include <math.h>
#include <stdio.h>

void show (double x)
{
   printf("nearbyint(%+.3e) = %d\n", x, (int)(nearbyint(x)));
   if(0.0 == x) return;
   x = -x;
   printf("nearbyint(%+.3e) = %d\n", x, (int)(nearbyint(x)));
   x = 1/x;
   printf("nearbyint(%+.3e) = %d\n", x, (int)(nearbyint(x)));
   x = -x;
   printf("nearbyint(%+.3e) = %d\n", x, (int)(nearbyint(x)));
}

int main ()
{
   show(1.1);
   show(11);
   show(111.1);
}

>Fix:
        


Reply via email to