【发布时间】:2011-01-27 10:18:13
【问题描述】:
伙计们, 我正在编写一种舍入方法。输入是十进制类型(保证四位小数)。舍入规则是忽略 0.005 或更少,即查看小数点后第三位 - 如果 82.36、82.3667 -> 82.37、82.5967 -> 82.60、82.9958 -> 82.99、82.9968 -> 83.00 有什么好主意吗?我已经解决了如下。
private decimal CustomRound(decimal x)
{
decimal rX = Math.Truncate(x * 100) / 100;
decimal x3DecPlaces = Math.Truncate(x * 1000) / 1000;
decimal t = (x3DecPlaces * 1000) % 10;
if (t >= 6)
rX = rX + 0.01m;
return rX;
}
【问题讨论】: