No debe usar flotar a menos que sea necesario. En el 99% de los casos, el doble es una mejor opción.
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);
huellas dactilares
f= 111111.12
d= 111111.1111
Siguiendo el comentario de @ Matt.
float tiene muy poca precisión (6-7 dígitos) y muestra un error de redondeo significativo con bastante facilidad. double tiene otros 9 dígitos de precisión. El costo de usar double en lugar de float es teórico en el 99% de los casos, sin embargo, el costo de un error sutil debido a un error de redondeo es mucho mayor. Por esta razón, muchos desarrolladores recomiendan no usar punto flotante en absoluto y recomiendan encarecidamente BigDecimal.
Sin embargo, encuentro que el doble se puede usar en la mayoría de los casos siempre que se use un redondeo sensato .
En este caso, int x tiene una precisión de 32 bits mientras que float tiene una precisión de 24 bits, incluso dividir por 1 podría tener un error de redondeo. double por otro lado tiene 53 bits de precisión, que es más que suficiente para obtener un resultado razonablemente preciso.