Comment convertir un entier en float en Java?

J’ai deux entiers x et y . J’ai besoin de calculer x/y et comme résultat je voudrais obtenir du float. Par exemple, en tant que résultat de 3/2 j’aimerais avoir 1,5. Je pensais que la façon la plus simple (ou la seule) de le faire était de convertir x et y en type float. Malheureusement, je ne peux pas trouver un moyen facile de le faire. Pourriez-vous m’aider s’il vous plaît?

Il suffit de lancer au moins un des opérandes dans un flottant:

 float z = (float) x / y; 

ou

 float z = x / (float) y; 

ou (inutile)

 float z = (float) x / (float) y; 

Vous ne devriez pas utiliser float, sauf si vous devez le faire. Dans 99% des cas, le double est un meilleur choix.

 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); 

estampes

 f= 111111.12 d= 111111.1111 

Après le commentaire de @ Matt.

float a très peu de précision (6-7 chiffres) et montre assez facilement l’erreur d’arrondi. double a encore 9 chiffres de précision. Le coût de l’utilisation de double au lieu de float est notionnel dans 99% des cas, mais le coût d’un bug subtil dû à une erreur d’arrondi est beaucoup plus élevé. Pour cette raison, de nombreux développeurs recommandent de ne pas utiliser de virgule flottante et recommandent fortement BigDecimal.

Cependant, je trouve que le double peut être utilisé dans la plupart des cas, à condition que des arrondis raisonnables soient utilisés .

Dans ce cas, int x a une précision de 32 bits alors que float a une précision de 24 bits, même une division par 1 pourrait avoir une erreur d’arrondi. Par contre, le double a une précision de 53 bits, ce qui est largement suffisant pour obtenir un résultat raisonnablement précis.

Il suffit de transférer la première valeur à flotter avant de procéder à d’autres calculs:

 float z = x * 1.0 / y; 

Voici comment vous pouvez le faire:

 public static void main(Ssortingng[] args) { // TODO Auto-generated method stub int x = 3; int y = 2; Float fX = new Float(x); float res = fX.floatValue()/y; System.out.println("res = "+res); } 

À plus !

// L’entier que je veux convertir

 int myInt = 100; 

// Casting d’entier à flotter

 float newFloat = (float) myInt 

Sameer:

 float l = new Float(x/y) 

ne fonctionnera pas, car il calculera d’abord la division entière de x et y, puis construira un flottant à partir de celui-ci.

 float result = (float) x / (float) y; 

Est sémantiquement le meilleur candidat.