使用c#将44355/10向下舍入为-1

时间:2018-04-04 17:51:16

标签: c#

如何在C#.net中使用向下舍入为-1,就像我们在excel中使用的那样?

在excel中我这样做:

ROUND-DOWN(44355/10,-1);

输出:4430

我试过了:Math.Round(44355/10,-1)

但是这给了我和错误:

  圆形必须在0-15之间

2 个答案:

答案 0 :(得分:2)

基本上Math.Round不允许这样做,您可以使用自己的实现,但请参阅this solution

答案 1 :(得分:0)

如果您明确需要与Excel ROUND-DOWN功能类似的功能,请尝试类似这样的内容......

public static float RoundDown(float value, int numDigits)
{
    if (numDigits > 0)
        return (float)Math.Round(value, numDigits);

    var iValue = (int)value;

    for (int i = numDigits, x = 10; i < 0; i++, x *= 10)
        iValue -= iValue % x;

    return iValue;
}

这会产生以下结果:

RoundDown(5.82f, 0);      // 5
RoundDown(-5.82f, 0);     // 5
RoundDown(5.82f, 1);      // 5.8
RoundDown(-5.82f, 1);     // -5.8
RoundDown(123.456f, -1);  // 120
RoundDown(-123.456f, -1); // -120
RoundDown(123.456f, -2);  // 100
RoundDown(-123.456f, -2); // -100
RoundDown(999.999f, -3);  // 0
RoundDown(-999.999f, -3); // 0