Неожиданный выход при добавлении двух чисел поплавка

Я написал следующий код C ++:

float a, b;
int c;

a = 8.6;
b = 1.4;
c = a + b;

printf("%d\n", c);

Выход 10 .

Но когда я запускаю следующий код:

float a, b;
int c;

a = 8.7;
b = 1.3;
c = a + b;

printf("%d\n", c);

Выход 9 .

В чем разница между ними, поскольку они дают разные выходы?

5
задан Mateen Ulhaq 10 September 2011 в 05:53
поделиться