ホームページ >バックエンド開発 >C++ >C# の整数の除算で切り捨てが発生するのはなぜですか?また、それを防ぐにはどうすればよいですか?

C# の整数の除算で切り捨てが発生するのはなぜですか?また、それを防ぐにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-05 17:31:40689ブラウズ

Why Does C# Integer Division Round Down, and How Can I Prevent It?

C# の自動除算の切り捨て: 理解と回避

C# で除算を実行すると、結果の予期しない切り捨てが発生する可能性があります。この動作は、結果を最も近い整数に切り捨てる整数除算の性質に起因しています。

これを説明するために、次の例を考えてみましょう。

double i;
i = 200 / 3;
Messagebox.Show(i.ToString());

このコードはメッセージ ボックスを表示します。値「66」は、200 / 3 が 66 に切り捨てられたことを示します。ただし、200 / 3 の実際の値は約66.6666667.

この切り捨てを回避するには、除算を実行する前にオペランドを倍精度浮動小数点数に明示的に変換する必要があります。これはいくつかの方法で実現できます:

  1. 定数のキャスト:
i = (double)200 / 3;
  1. 10 進数の使用リテラル:
i = 200.0 / 3;
  1. 定数に接尾辞「d」を追加:
i = 200d / 3;

のいずれかこれらのアプローチにより、結果の小数部分が保持されたまま、二重除算が確実に実行されます。したがって、整数の除算を使用することの意味を理解し、分数が関係する場合には適切なキャスト手法を採用することが重要です。

以上がC# の整数の除算で切り捨てが発生するのはなぜですか?また、それを防ぐにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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