Witam,
Mam nieco zastanawiający problem: nie rozumiem zwracanych wyników przy mnożeniu liczby int i float'a.
Oto kod źródłowy:
#include <stdio.h>
int main()
{
float tmp=0.02;
float tmp2=tmp*100;
printf("%d\n",tmp2);
printf("%d\n",(int)(tmp2));
printf("%d\n",(int)(tmp*100));
return 0;
}
Celowo nie ma tu możliwości wpisania danych. W każdy razie po uruchomieniu programu dostaję wyniki:
0
2
1
Skąd ta rozbieżnośc w wynikach (dlaczego tylko w jednym przypadku otrzymuję '2')?