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
Libérer: 2025-01-20 17:38:09
original
781 Les gens l'ont consulté

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

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

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!

source:php.cn
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