При целочисленном делении результат не округляется по "математическим" правилам, дробная часть просто отсекается, фактически это округление вниз: и 9/10 и 1/10 дадут 0.
При использовании float само собой получится 0.9 и 0.1.
Если нужно целочисленное деление с округлением вверх, его можно реализовать так: вместо x / y записать (x + y - 1) / y.
Рассмотренные выше примеры деления на 10 дадут результат 1.
Для округления по обычным математическим правилам можно использовать функцию round(), но она довольно тяжёлая, так работает с float. Переполнение переменной При переполнении в бОльшую сторону из нового значения вычитается максимальное значение переменной, и у неё остаётся только остаток.
Пример:
// тип данных byte (0.. 255)
byte val = 255;
// тут val станет равным 0
val++;
// а тут из нуля станет 246
val -= 10;
// переполним! Останется 13
val = 525;
// и обратно: val равна 236
val = -20;
Особенности float Если в выражении нет float чисел, то вычисления будут иметь целый результат (дробн