Ви не повинні використовувати флоат, якщо вам не потрібно. У 99% випадків подвійний - кращий вибір.
int x = 1111111111;
int y = 10000;
float f = (float) x / y;
double d = (double) x / y;
System.out.println("f= "+f);
System.out.println("d= "+d);
відбитки
f= 111111.12
d= 111111.1111
Після коментаря @ Matt.
float має дуже невелику точність (6-7 цифр) і досить легко демонструє значну помилку округлення. double має ще 9 цифр точності. Вартість використання double замість float є умовною у 99% випадків, однак вартість тонкої помилки через помилку округлення набагато вища. З цієї причини багато розробників рекомендують взагалі не використовувати плаваючу крапку і настійно рекомендують BigDecimal.
Однак я вважаю, що в більшості випадків можна використовувати подвійне, якщо використовується розумне округлення .
У цьому випадку int x має 32-бітну точність, тоді як float має 24-бітну точність, навіть ділення на 1 може мати помилку округлення. double, з іншого боку, має 53-бітну точність, що більш ніж достатньо для отримання досить точного результату.