ホームページ >バックエンド開発 >C++ >C の整数除算の結果がゼロになるのはなぜですか?また、浮動小数点除算はどのように達成できるのでしょうか?

C の整数除算の結果がゼロになるのはなぜですか?また、浮動小数点除算はどのように達成できるのでしょうか?

Susan Sarandon
Susan Sarandonオリジナル
2024-12-16 17:31:10456ブラウズ

Why Does C   Integer Division Result in Zero, and How Can Floating-Point Division Be Achieved?

C の浮動小数点除算を理解する

double 変数に代入されているにもかかわらず、指定された変数では除算 (3/5) の結果は 0 になります。整数除算によるコード。 C は、デフォルトで除算式のオペランドを整数として評価します。 3 と 5 はどちらも整数であるため、それらの除算では整数の結果 (ゼロ) が得られます。

結果が小数精度を維持する浮動小数点除算を実行するには、少なくとも 1 つのオペランドが浮動小数点リテラルである必要があります。 。これにより、コンパイラは除算を浮動小数点演算として扱い、浮動小数点の結果を返すように強制されます。

元のコードでは、意図した浮動小数点除算を実現するには、次のように変更できます。

#include <iostream>

int main(int argc, char** argv)
{
  double f = 3.0 / 5;  // Change both operands to floating-point literals
  std::cout << f;
  return 0;
}

1 つのオペランド (この場合は 3.0) を浮動小数点リテラルにすることで、コンパイラーは浮動小数点除算を実行し、結果は小数点以下の値を正しく反映します。値。

以上がC の整数除算の結果がゼロになるのはなぜですか?また、浮動小数点除算はどのように達成できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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