HP OpenVMS Systemsask the wizard |
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.
|