除以不返回我期望的十进制值

时间:2010-04-08 01:36:46

标签: c# math

  

可能重复:
  What's wrong with this division?

如果您划分2 / 3,则应返回0.66666666666666667。相反,我得到0.0为双值类型,0为十进制。

我的目的是将偶数(例如2 / 3)和舍入为1总是最近。

任何帮助?

2 个答案:

答案 0 :(得分:44)

你正在从它的声音中进行整数除法。试试这个:

decimal result = 2.0 / 3.0;

甚至强制它为所有操作的小数:

decimal result = 2.0m / 3.0m;

这应该会给你一个更像你期望的结果。

答案 1 :(得分:7)

执行2/3是整数除法,它不会返回除法的小数位。要获得.666666667,你需要做2.0 / 3.0,这两个都是双倍的,以获得预期的答案。

相关问题