#include <stdio.h>
main()
{

long l;
long l_corr,l_corr2;
double d = 2.03;

l = d*100;

printf( " l = %ld\n",l);
}

Pls can you explain me why does l prints 202 instead of 203 .

Also if d would have been equal to 2.04 it would have printed properly as 204 .

I know the solution for this , but just wanted the reason for it !!

Thanx