Maison > développement back-end > C++ > Pourquoi ma division entraîne-t-elle zéro malgré les entrées non nulles?

Pourquoi ma division entraîne-t-elle zéro malgré les entrées non nulles?

Mary-Kate Olsen
Libérer: 2025-01-29 11:36:10
original
408 Les gens l'ont consulté

Why Does My Division Result in Zero Despite Non-Zero Inputs?

Résultats de la division zéro inattendue: un écueil commun

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>
Copier après la connexion

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>
Copier après la connexion

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!

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal