使用Math.Round(ReportItems!category.Value,MidpointRounding.AwayFromZero)返回不正确的值

时间:2014-01-15 20:37:44

标签: c# visual-studio-2010 reporting-services ssrs-2008

我正在使用

=Math.Round(ReportItems!category.Value,MidpointRounding.AwayFromZero) 
Tablix行中的

,导致值不正确。

5.48正在四舍五入到5

相反,我希望将5.48视为6

2 个答案:

答案 0 :(得分:2)

您要求的不是rounding away from zero,正数为Ceiling,负数为Floor

答案 1 :(得分:1)

MidpointRounding.AwayFromZero是一种定义如何处理中点值的方法。中点是X.5。因此,4.5四舍五入为5,而不是4,这是MidpointRounding.ToEven的情况。 Round完全正确。

如果要编写一个将所有非整数值四舍五入到下一个最高整数的函数,那么该操作为Math.Ceiling,而不是Round