【发布时间】:2012-03-17 19:50:26
【问题描述】:
当我将小数转换为长整数时,我很难理解四舍五入的过程。
例如
decimal pi = Convert.ToDecimal(Math.PI);
long d = 2534254324524352;
long dpi = Convert.ToInt64(pi * Convert.ToDecimal(d));
//I'd like to do the reverse to get the value of d as dd
long dd = Convert.ToInt64(Convert.ToDecimal(dpi) /pi);
在这个特定的示例中,它可以工作,但有时当我尝试重新编号时,它不起作用。当您将小数转换为长整数时,是否有精确的舍入方式?有没有办法控制这种行为?
谢谢
【问题讨论】:
-
“它不起作用”并没有真正的帮助。请找到一个简短但完整的示例,该示例确实说明了问题,说明了预期行为和实际行为。
标签: c# decimal rounding long-integer division