[an error occurred while processing this directive]

HP OpenVMS Systems

ask the wizard
Content starts here

C floating point processing?

» close window

The Question is:

 
The following code produces incorrect answers
on VMS 7.1. This file shows
that when placing a double
(that is underflowing) into a float
the incorrect value is placed in the
float.
 
VMS 6.2 gives the correct results.
 
The code was compiled on VMS 6.2 with the following
compile flags:
 CC/NOLIST/EXTERN=STRICT_REFDEF/ANSI/PREFIX=(ALL,EXCEPT=GETHOSTNAME)
/FLOAT=IEEE_FLOAT/IEEE_MODE=DENORM_RESULTS/OPT=(inline=none,level=1,unroll=0
)/NODEBUG
 
------------------
Here is the output from VMS 6.2:
 
value: 1.34858e-77      0
------------------
Here is the output from VMS 7.1
 
value: 1.34858e-77      1.56155
 
 
----------cow.c starts here--------
 
#include <stdio.h>
#include <math.h>
 
int main(int c, char *v[]){
  float cow;
 
  cow = exp(-177.f);
 
printf("value: %g\t%g\n", exp(-177.f), cow);
return(1);
 
 
 


The Answer is :

 
  Please contact the customer support center for assistance.
 
  Expect to be asked for the version of the DEC C compiler in use,
  among other questions.
 

answer written or last revised on ( 30-SEP-1998 )

» close window