Maison > Java > javaDidacticiel > Pourquoi la division entière en Java produit-elle 0,0 au lieu d'un résultat décimal ?

Pourquoi la division entière en Java produit-elle 0,0 au lieu d'un résultat décimal ?

Susan Sarandon
Libérer: 2024-12-26 02:18:14
original
845 Les gens l'ont consulté

Why Does Integer Division in Java Produce 0.0 Instead of a Decimal Result?

Pourquoi la division entière de Java donne-t-elle 0,0 ?

Lors de la division de deux entiers en Java, le résultat n'est souvent pas celui auquel on pourrait s'attendre :

int totalOptCount = 500;
int totalRespCount = 1500;
float percentage = (float) (totalOptCount / totalRespCount);
Copier après la connexion

Dans ce cas, vous vous attendez à ce que le pourcentage soit de 0,33 (ou 0,333 arrondi). Cependant, vous pourriez être surpris de constater qu'il renvoie en réalité 0,0. Pourquoi est-ce le cas ?

Ordre de conversion à la rescousse

La raison de ce résultat inattendu réside dans l'ordre dans lequel Java effectue ses calculs. Lorsque vous divisez deux entiers, Java les convertit automatiquement en doubles. Mais cette conversion n’a lieu qu’après la division. Ainsi, dans l'exemple ci-dessus, le calcul est en fait effectué comme ceci :

double percentage = totalOptCount / totalRespCount;
Copier après la connexion

Ce qui donne une valeur double de 0,0. Pour résoudre ce problème, vous devez convertir explicitement l'un des opérandes en float ou double avant d'effectuer la division :

float percentage = ((float) totalOptCount) / totalRespCount;
Copier après la connexion

Maintenant, la conversion en float se produit en premier et la division est effectuée sur le float valeurs, ce qui donne la valeur flottante correcte de 0,333333.

Formatage pour décimal Précision

Une fois que vous avez le résultat correct, vous souhaiterez peut-être le formater avec une précision décimale spécifique. Vous pouvez utiliser la méthode String.format() pour ce faire :

String str = String.format("%2.02f", percentage);
Copier après la connexion

Cela formatera la variable de pourcentage en une chaîne avec deux décimales, ce qui donnera la valeur 00,33.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal