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 :
set1
et set2
comme nombres à virgule flottante :<code>DECLARE @set1 FLOAT, @set2 FLOAT; SET @weight= @set1 / @set2;</code>
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!