Nie powinieneś używać float, chyba że musisz. W 99% przypadków lepszym wyborem jest podwójne.
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);
wydruki
f= 111111.12
d= 111111.1111
Po komentarzu @ Matta.
float ma bardzo małą dokładność (6-7 cyfr) i dość łatwo pokazuje znaczący błąd zaokrąglenia. double ma kolejne 9 cyfr dokładności. Koszt użycia double zamiast float jest hipotetyczny w 99% przypadków, jednak koszt subtelnego błędu spowodowanego błędem zaokrąglania jest znacznie wyższy. Z tego powodu wielu programistów w ogóle nie zaleca używania zmiennoprzecinkowych i zdecydowanie zaleca BigDecimal.
Jednak uważam, że w większości przypadków można użyć podwójnego, pod warunkiem że zastosowane zostanie rozsądne zaokrąglenie .
W tym przypadku int x ma 32-bitową precyzję, podczas gdy float ma 24-bitową precyzję, nawet dzielenie przez 1 może spowodować błąd zaokrąglenia. double z drugiej strony ma 53-bitową precyzję, która jest więcej niż wystarczająca, aby uzyskać dość dokładny wynik.