C#数学轮-11.5到11轮和-11.6到12轮

时间:2016-07-27 21:42:19

标签: c# visual-studio

我正在使用Selenium和C#测试应用程序。此应用程序执行以下舍入(我认为是javascript舍入标准):

  • -11.51轮到-12
  • -11.5向零舍入,因此转到-11
  • 11.5轮到12

这是基于所需的规格,因此我必须计算数字并围绕自己来实现上面的结果。我必须使用C#库来舍入它们。使用AwayFromZero作为正数可行,但我似乎无法找到一个有效的解决方案来舍入我的负数。

例如,使用AwayFromZero,ToEven或Floor作为底片,我得到:

  • -11.51至-12
  • -11.5至-12

使用Ceiling和Truncate,我得到:

  • -11.51至-11
  • -11.5至-11

总结一下,我需要一种算法或某种方法,当我的数字是-.5或高于,或-10.5或高于时,能够向零舍入,例如。我还需要这个相同的算法来舍入-10.51到-11

1 个答案:

答案 0 :(得分:4)

这个怎么样?

public static double MyRound( double x )
{
    return Math.Floor( x + 0.5 );
}

这似乎可以满足您的所有测试用例。