ホームページ > バックエンド開発 > C++ > C# は除算で小数部の結果をどのように処理しますか?また、整数の丸めを回避するにはどうすればよいですか?

C# は除算で小数部の結果をどのように処理しますか?また、整数の丸めを回避するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-05 19:56:46
オリジナル
696 人が閲覧しました

How Does C# Handle Fractional Results in Division, and How Can I Avoid Integer Rounding?

C# 除算の丸めについて

C# で除算を実行すると、小数点以下の結果が最も近い整数に切り捨てられることがよくあります。これは、特に浮動小数点数を扱う場合に予期せぬ事態になる可能性があります。

次のコード スニペットを考えてみましょう。

double i;
i = 200 / 3;
Messagebox.Show(i.ToString());
ログイン後にコピー

ここ, i には、200 を 3 で割った値、つまり 66.6666667 が割り当てられます。ただし、Messagebox.Show で表示すると「66」と表示されます。これは、C# がデフォルトで整数の除算を実行し、最も近い整数に切り捨てられるためです。

切り捨ての回避

小数点以下の精度を維持するには、次のいずれかを使用できます。次のアプローチ:

  • Double への明示的キャスト:倍精度除算を強制するには、オペランドの 1 つを double にキャストします。例:
i = (double)200 / 3;
ログイン後にコピー
  • 浮動小数点定数を使用する: 接尾辞 .0 または d を使用して、オペランドの 1 つを浮動小数点定数として宣言します。これにより、倍精度の除算も可能になります。例:
i = 200.0 / 3;
ログイン後にコピー
  • 「d」接尾辞を使用します: 整数定数に d 接尾辞を追加して、倍精度除算を示します。例:
i = 200d / 3;
ログイン後にコピー

これらのメソッドを使用すると、除算の計算で切り捨てずに小数の結果が返されるようにすることができます。

以上がC# は除算で小数部の結果をどのように処理しますか?また、整数の丸めを回避するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート