Maison > Java > javaDidacticiel > le corps du texte

Pourquoi la division entière en Java tronque-t-elle les fractions ?

Patricia Arquette
Libérer: 2024-11-20 02:56:01
original
366 Les gens l'ont consulté

Why Does Integer Division in Java Truncate Fractions?

Résolution des incohérences de division entière

En Java, un faux pas courant se produit lors de la tentative d'opérations de division simples. Un scénario comme celui-ci, dans lequel un calcul basé sur un nombre entier échoue de manière inattendue, peut être attribué à la nature de la division entière.

Lorsque des nombres entiers sont divisés, le résultat est un entier, tronquant toute partie fractionnaire. Cette limitation peut être observée dans le code Java suivant :

float res = quantity / standard;
Copier après la connexion

Bien que la variable res soit déclarée comme float, la division de deux entiers donne un résultat entier. Cet écart peut entraîner des erreurs de précision inattendues.

Pour remédier à ce problème, envisagez de convertir explicitement le numérateur en flottant avant la division :

float res = (float) quantity / standard;
Copier après la connexion

En forçant le numérateur à être traité comme un float, le dénominateur est également promu à float. Cela garantit qu'une division basée sur des flottants est effectuée, en préservant la partie fractionnaire du résultat en res.

Alternativement, si vous avez affaire à des littéraux, vous pouvez ajouter le suffixe "f" au dénominateur :

float f = 6800f / 500;
Copier après la connexion

Cette modification atteint le même objectif que la conversion explicite, convertissant le dénominateur en float pour garantir l'exécution d'une opération de division basée sur float.

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