Maison >base de données >tutoriel mysql >Pourquoi une division entière renvoie-t-elle zéro au lieu d'une valeur décimale ?

Pourquoi une division entière renvoie-t-elle zéro au lieu d'une valeur décimale ?

Patricia Arquette
Patricia Arquetteoriginal
2025-01-20 17:25:10136parcourir

Why Does Integer Division Return Zero Instead of a Decimal Value?

Division entière et résultats zéro inattendus

L'exemple de code produit un résultat nul à partir d'une opération de division où une valeur décimale (0,073667712) est attendue. En effet, les variables, par défaut, sont traitées comme des entiers. La division entière dans de nombreux langages de programmation tronque (supprime) toute partie fractionnaire du résultat, ne laissant que la partie numérique entière. Par conséquent, 47 divisé par 638 donne zéro.

Solution : Utiliser des types de données à virgule flottante

Pour obtenir le résultat décimal correct, vous devez utiliser des nombres à virgule flottante (comme float ou double selon le langage de programmation). Ceci peut être réalisé de deux manières :

  1. Déclarer les variables comme flottants : Définissez dès le départ @set1 et @set2 comme types de données à virgule flottante. La syntaxe spécifique dépend de votre langage de programmation.

  2. Casting de type : Convertissez explicitement les variables entières en flottants avant d'effectuer la division à l'aide d'une fonction de transtypage (comme CAST en SQL ou des fonctions similaires dans d'autres langages). Par exemple :

<code class="language-sql">SET @weight = CAST(@set1 AS float) / CAST(@set2 AS float);</code>

Cela garantit que la division est effectuée sur des nombres à virgule flottante, en préservant la partie décimale et en donnant le résultat attendu d'environ 0,073667712.

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