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

Pourquoi la division entière dans SQL renvoie-t-elle 0 au lieu d'une valeur décimale ?

Linda Hamilton
Libérer: 2025-01-20 17:26:10
original
638 Les gens l'ont consulté

Why Does Integer Division in SQL Return 0 Instead of a Decimal Value?

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

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!

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