小编red*_*zon的帖子

C#中的十进制类型的自定义舍入

伙计们,我正在写一个四舍五入的方法.输入是十进制类型(保证四位小数).舍入规则是忽略0.005或更小,即查看小数点后三位 - 如果它是<= 5,则向下舍入向上舍入.一些用例:82.3657 - > 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;
}
Run Code Online (Sandbox Code Playgroud)

c# rounding

5
推荐指数
1
解决办法
3373
查看次数

标签 统计

c# ×1

rounding ×1