Comprendre pourquoi la division entière SQL renvoie zéro
Les résultats nuls inattendus des opérations de division SQL peuvent prêter à confusion. Cet article traite d'une situation dans laquelle la division de deux variables numériques (@set1 et @set2) produit 0 au lieu du 0,073667712 attendu.
Le problème vient des types de données des variables. Les variables SQL sont généralement des entiers ou des chaînes. Lorsque @set1 (47) et @set2 (638) sont traités comme des nombres entiers, une division entière se produit, ce qui donne 0. Pour obtenir le résultat décimal correct, convertissez explicitement ces variables en nombres à virgule flottante avant le calcul.
La solution utilise la fonction CAST
pour convertir les variables en flottants :
<code class="language-sql">SET @weight = CAST(@set1 AS FLOAT) / CAST(@set2 AS FLOAT);</code>
La conversion de @set1 et @set2 comme FLOAT
garantit une division en virgule flottante, donnant la valeur décimale précise de 0,073667712. Ce simple changement garantit le résultat mathématique correct.
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!