-2

我想知道当一个值被截断时,我如何四舍五入到最接近的 100。我正在使用这个:

private static int CalculatePaperLevel(int paperLevel)
{
   int roundedLevel = 0;
   roundedLevel = ((int)Math.Round(paperLevel / 10.0) * 10);
   return roundedLevel;
}

但这就是我想要的

例如 191 -> 100

224 -> 200

140 -> 100

295 -> 200

4

4 回答 4

9

你可以做roundedLevel = (paperLevel / 100) * 100;

这是有效的,因为整数算术总是将结果截断为整数。所以

  • (295 / 100) -> 2
  • 2 * 100 -> 200
于 2013-06-11T21:57:23.210 回答
2

int当您在 C# 中将两个 s 相除时,就会发生这样的截断。此代码执行您想要的操作:

private static int CalculatePaperLevel(int paperLevel)
{
   int roundedLevel = paperLevel / 100 * 100;
   return roundedLevel;
}
于 2013-06-11T21:58:02.280 回答
1

我相信您想要的功能称为Math.Floor

于 2013-06-11T21:58:16.453 回答
0

只需使用Math.Floor (37D/100)*100

于 2013-06-11T21:59:52.303 回答