Maison >développement back-end >C++ >Pourquoi ma division entraîne-t-elle zéro malgré les entrées non nulles?
Les nombres de division peuvent parfois donner des résultats surprenants, comme être nul même lorsque les deux entrées sont non nulles. Cela découle souvent de la façon dont les langages de programmation gèrent les types de données pendant les calculs.
Considérez cet exemple de code:
<code>decimal share = (18 / 58) * 100;</code>
Ici, 18 et 58 sont traités comme des entiers. La division entière produit toujours un résultat entier; Toute partie fractionnaire est tronquée. Par conséquent, 18 divisés par 58 se traduit par 0.
La solution consiste à s'assurer que la division est effectuée à l'aide de types de données décimales:
<code>decimal share = (18m / 58m) * 100m;</code>
Le suffixe "M" lance explicitement les nombres sous forme de décimales. Cela force une division décimale, fournissant le résultat précis et non nul. Ce changement simple empêche l'erreur de troncature et résout le problème.
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!