HP OpenVMS Systemsask the wizard |
The Question is:
Floating-point in DEC C(V5.0) & Pascal(V5.6-59)
Following code will not produce the result as I expected:
float vl_float;
double vl_double;
vl_float = 100.09;
vl_double = 1.0009D2;
if (vl_float < 100.09) printf("vl_float by assignment is
less than 100.09\n");
if (vl_double < 1.0009D2) printf("vl_double by assignment
is less than 1.0009D2\n");
Run this program on OpenVMS6.1/AXP and the comparison
result will not be the equal, e.g. vl_float != 100.09
and vl_double != 1.0009D2.
This is a very basic problem. Can anybody there explain?
Please reply ASAP. Thanks in advance.
Rgds,
HD Wang
The Answer is :
#include <stdio.h>
#include <stdlib.h>
main()
{
float vl_float;
double vl_double;
vl_float = 100.09;
vl_double = 1.0009e2;
if (vl_float < (float) 100.09)
printf("vl_float by assignment is less than 100.09\n");
if (vl_double < (double) 1.0009e2)
printf("vl_double by assignment is less than 1.0009D2\n");
return 1;
}
|