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

整数の除算で 10 進数値ではなくゼロが返されるのはなぜですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-20 17:25:10136ブラウズ

Why Does Integer Division Return Zero Instead of a Decimal Value?

整数の除算と予期しないゼロの結果

コード例では、10 進数値 (0.073667712) が予期される除算演算からゼロの結果が生成されます。 これは、変数がデフォルトで整数として扱われるためです。 多くのプログラミング言語の整数除算では、結果の小数部分が切り捨て (破棄) され、整数部分のみが残ります。 したがって、47 を 638 で割ると、結果はゼロになります。

解決策: 浮動小数点データ型の使用

正しい 10 進数の結果を取得するには、浮動小数点数 (プログラミング言語に応じて float または double など) を使用する必要があります。 これは 2 つの方法で実現できます:

  1. 変数を浮動小数点として宣言する: @set1@set2 を最初から浮動小数点データ型として定義します。 特定の構文は、プログラミング言語によって異なります。

  2. 型キャスト: 型キャスト関数 (SQL の CAST や他の言語の同様の関数など) を使用して除算を実行する前に、整数変数を浮動小数点数に明示的に変換します。 例:

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

これにより、浮動小数点数で除算が実行され、小数部分が保持され、期待される約 0.073667712 の結果が得られます。

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

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