ホームページ >データベース >mysql チュートリアル >SQL の整数除算が 10 進数値ではなく 0 を返すのはなぜですか?

SQL の整数除算が 10 進数値ではなく 0 を返すのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-20 17:26:10638ブラウズ

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

SQL 整数除算がゼロを返す理由を理解する

SQL 除算演算からの予期しない結果がゼロになると、混乱を招く可能性があります。この記事では、2 つの数値変数 (@set1 と @set2) を除算すると、予想される 0.073667712 ではなく 0 が生成される状況について説明します。

問題は変数のデータ型に起因します。 SQL 変数は通常、整数または文字列です。 @set1 (47) と @set2 (638) が整数として扱われる場合、整数の除算が発生し、結果は 0 になります。正しい 10 進数の結果を取得するには、計算前にこれらの変数を浮動小数点数に明示的にキャストします。

このソリューションでは、CAST 関数を使用して変数を浮動小数点数に変換します。

<code class="language-sql">SET @weight = CAST(@set1 AS FLOAT) / CAST(@set2 AS FLOAT);</code>

@set1 と @set2 を FLOAT としてキャストすると、確実に浮動小数点除算が行われ、正確な 10 進数値 0.073667712 が得られます。この単純な変更により、正しい数学的結果が保証されます。

以上がSQL の整数除算が 10 進数値ではなく 0 を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。