a/b
рассчитывается как деление двух целых чисел, поэтому его результат является целым числом, и поэтому все за пределами десятичной плавающей запятой усекается, и вы получаете 0.0
.
Например: если у вас:
int a = 6;
int b = 4;
float x =(a/b);
Вы бы получить, что x = 1.0
, так как результат вычисления усекается, а затем, когда вы назначаете его к поплавку, значение результата целого 1
получает приведение к поплавок, т.е. 1.0
.
При расчете (float)a/(float)b
, вы вычисляя деление двух float
переменных и результат float
(то же самое, что произойдет, если только одна из переменных/значений был float
, а другой был integer
).
Искать «Integer Отдел» ... – crashmstr
Многих людей целочисленного деления в начальной школе и забыть. –