首页 >后端开发 >C++ >为什么 C# 整数除法会向下舍入,如何避免?

为什么 C# 整数除法会向下舍入,如何避免?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-05 18:24:40716浏览

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