将数字舍入为10

Sta*_*tan 1 c# numbers rounding

我试图将数字舍入到10

例如:

6变为10

4变为0

11变为10

14变为10

17变为20

我该怎么做?据我所知,Math.Round不适用于此.

Hen*_*man 10

对于double(float和decimal需要额外的铸造):

value = Math.Round(value / 10) * 10;
Run Code Online (Sandbox Code Playgroud)

用于int:

value = (int) (Math.Round(value / 10.0) * 10);
Run Code Online (Sandbox Code Playgroud)

  • 第二个注意事项:默认情况下,`Math.Round`将执行Banker's Round,这意味着2.5将舍入为2,而不是3(或者换句话说,此示例将围绕25到20而不是30).您可以通过使用`MidpointRounding`枚举参数重载来强制执行"正常"回合. (3认同)