Maison > développement back-end > C++ > Pourquoi la division Integer aboutit-elle à zéro?

Pourquoi la division Integer aboutit-elle à zéro?

Mary-Kate Olsen
Libérer: 2025-01-29 11:31:09
original
897 Les gens l'ont consulté

Why Does Integer Division Result in Zero?

zéro inattendu dans la division: un piège commun

Les zéros inattendus des calculs de division sont une source fréquente d'erreurs de programmation. Examinons un scénario commun pour comprendre pourquoi cela se produit.

Le problème:

Considérez ce code:

1

decimal share = (18 / 58) * 100;

Copier après la connexion

Le résultat de cette division est étonnamment nul.

La solution:

La cause profonde est la division entier. Lors de la division des entiers, le résultat est tronqué (la partie fractionnaire est rejetée), conduisant à un résultat entier. Dans ce cas, 18 divisé par 58 est inférieur à 1, il est donc tronqué à 0.

Pour corriger cela, nous devons explicitement utiliser des valeurs décimales:

1

decimal share = (18m / 58m) * 100m;

Copier après la connexion

Le suffixe m désigne chaque nombre comme un littéral décimal, garantissant une division à virgule flottante et un résultat précis et non nul. Cela oblige le calcul à utiliser l'arithmétique à virgule flottante, fournissant la réponse fractionnaire précise.

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