long double tt = 0.3;
int tmp;
tt = tt * 10;
tmp = tt;
tt -= tmp;
printf("%d\n", tmp);
printf("%Lf\n", tt);
3
0.000000
2
1.000000
double tt = 0.3;
int tmp;
tt = tt * 10;
tmp = tt;
tt -= tmp;
printf("%d\n", tmp);
printf("%f\n", tt);
как с этим бороться?Округлять перед присваиванием целому (round, roundf, roundl).