可以将C#中的Math.Round用于整数值吗?

wil*_*iam 4 c# asp.net

我有整数363例如.

任何使其成为360或365的方法?

cdh*_*wie 8

这是一个黑客,但它的工作原理:

var rounded = Math.Round(363 / 5f) * 5;
Run Code Online (Sandbox Code Playgroud)

  • 它将5指定为浮点值.它与`(float)5`的含义相同.您必须使用浮点值进行除法,否则结果将被截断为整数,并且随后将始终向下舍入. (2认同)

Ant*_*ram 5

内置任何东西,你只需要自己编写逻辑代码.这是一种这样的方法.(走下去更清楚,但上升是可以控制的.)

int number = 363;
int roundedDown = number - number % 5;
int roundedUp = number + (number % 5 > 0 ? (5 - number % 5) : 0);
Run Code Online (Sandbox Code Playgroud)

编辑负数,逻辑几乎被颠倒了.

static int RoundUpToFive(int number)
{
    if (number >= 0)
        return number + (number % 5 > 0 ? (5 - number % 5) : 0);
    else
        return number - (number % 5);
}

static int RoundDownToFive(int number)
{
    if (number >= 0)
        return number - number % 5;
    else
        return number + (number % 5 < 0 ? (-5 - number % 5) : 0);
}
Run Code Online (Sandbox Code Playgroud)