首頁 >後端開發 >C++ >為什麼 C# 整數除法會向下捨入,如何避免?

為什麼 C# 整數除法會向下捨入,如何避免?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-05 18:24:40719瀏覽

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

C# 中的除法向下捨去

在C# 中執行除法時,程式設計師可能會遇到意外的向下捨入行為。當執行整數除法時會出現此問題,導緻小數部分遺失。

為了說明這一點,請考慮以下程式碼:

double i;
i = 200 / 3; // Integer division
MessageBox.Show(i.ToString());

此程式碼將顯示一個帶有值的訊息方塊「66」。然而,200 / 3 的預期結果應該是66.66666...

解決方案:使用雙除法

為了避免這種向下舍入並保持浮點精確度,應該使用雙除法而不是整數除法。這可以透過以下方式實現:

  1. 將其中一個運算元轉換為雙精確度:
i = (double)200 / 3;
  1. 在一個運算元中使用尾隨小數點:
i = 200.0 / 3;
  1. 附加d一個運算元的字尾:
i = 200d / 3;

透過使用雙除法,除法運算子 / 將執行浮點除法,保留所有有效數字。

以上是為什麼 C# 整數除法會向下捨入,如何避免?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn