Ошибки округления возможны при преобразовании float в int, потому что при таком преобразовании дробная часть числа просто отбрасывается, вне зависимости от того, было ли оно больше или меньше 0,5. 1 В результате число округляется в меньшую сторону. 1
Чтобы избежать ошибок, можно использовать метод Math.round() для округления числа до ближайшего целого. 1 Если дробная часть числа больше или равна 0,5, число округляется вверх, иначе — вниз. 1
Также стоит учитывать, что тип float может содержать дробные числа, в то время как тип int — только целые. 1
Ещё одна причина ошибок округления — то, что некоторые числа нельзя идеально точно представить в типе float. 4 Например, 0,9 на самом деле хранится в нём примерно как 0,8999999. 4