Sie sollten float nicht verwenden, es sei denn, Sie müssen. In 99% der Fälle ist Double die bessere Wahl.
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);
druckt
f= 111111.12
d= 111111.1111
Nach dem Kommentar von @ Matt.
float hat eine sehr geringe Genauigkeit (6-7 Stellen) und zeigt ziemlich leicht einen signifikanten Rundungsfehler. double hat weitere 9 Stellen Genauigkeit. Die Kosten für die Verwendung von double anstelle von float sind in 99% der Fälle fiktiv, jedoch sind die Kosten für einen subtilen Fehler aufgrund eines Rundungsfehlers viel höher. Aus diesem Grund empfehlen viele Entwickler, überhaupt kein Gleitkomma zu verwenden, und empfehlen BigDecimal nachdrücklich.
Ich finde jedoch, dass Double in den meisten Fällen verwendet werden kann, vorausgesetzt, es wird eine sinnvolle Rundung verwendet .
In diesem Fall hat int x eine Genauigkeit von 32 Bit, während float eine Genauigkeit von 24 Bit hat. Selbst das Teilen durch 1 kann einen Rundungsfehler verursachen. double hingegen hat eine Genauigkeit von 53 Bit, was mehr als genug ist, um ein einigermaßen genaues Ergebnis zu erzielen.