如果您划分2 / 3
,则应返回0.66666666666666667
。相反,我得到0.0
为双值类型,0
为十进制。
我的目的是将偶数(例如2 / 3
)和舍入为1总是最近。
任何帮助?
答案 0 :(得分:44)
你正在从它的声音中进行整数除法。试试这个:
decimal result = 2.0 / 3.0;
甚至强制它为所有操作的小数:
decimal result = 2.0m / 3.0m;
这应该会给你一个更像你期望的结果。
答案 1 :(得分:7)
执行2/3是整数除法,它不会返回除法的小数位。要获得.666666667,你需要做2.0 / 3.0,这两个都是双倍的,以获得预期的答案。