While rounding off the floating point values I observed some discrepancy in values. I have extracted following part of code. Here if variable var_d
is assigned value> 5.3 to then I am getting proper values for variable var_d
, but for values like 5.01 and 5.02 I am getting 500 and 501 respectively.
#include<stdio.h>
int main()
{
double var_d=5.02;
long var_l;
var_l = (double)(var_d*100);
printf("var_d : %f var_l= %ld\n ",var_d,var_l);
printf("result : %ld\n",var_l);
return 0;
}