Maison >base de données >tutoriel mysql >Pourquoi la division entière produit-elle des résultats inattendus en programmation ?

Pourquoi la division entière produit-elle des résultats inattendus en programmation ?

Barbara Streisand
Barbara Streisandoriginal
2025-01-20 17:38:09833parcourir

Why Does Integer Division Produce Unexpected Results in Programming?

Résultats inattendus dans la division de programmation

La division entière en programmation peut conduire à des résultats surprenants. Prenons cet exemple :

<code>PRINT @set1
PRINT @set2

SET @weight= @set1 / @set2;
PRINT @weight</code>

En utilisant set1 = 47 et set2 = 638, le résultat attendu est 0.073667712. Au lieu de cela, le résultat est 0. Cela se produit parce que, par défaut, de nombreux langages de programmation effectuent une division entière lorsque les deux opérandes sont des nombres entiers. La division entière supprime la partie fractionnaire, ce qui entraîne une troncature.

Pour obtenir la division en virgule flottante attendue, utilisez l'une de ces méthodes :

  1. Déclarez les variables comme flottants : Définissez dès le départ set1 et set2 comme nombres à virgule flottante :
<code>DECLARE @set1 FLOAT, @set2 FLOAT;

SET @weight= @set1 / @set2;</code>
  1. Casting de type explicite : Convertissez set1 et set2 en flottants lors de la division :
<code>SET @weight= CAST(@set1 AS FLOAT) / CAST(@set2 AS FLOAT);</code>

L'une ou l'autre méthode garantit une division précise en virgule flottante et évite la perte de précision causée par la troncature des nombres entiers. Cela donne le résultat décimal correct pour les calculs nécessitant des valeurs fractionnaires.

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