舍入小数到最接近的50并返回整数

时间:2013-12-17 16:32:43

标签: c#

从这个问题开始: C# how to always round down to nearest 50

如何将小数舍入到最接近的50并返回一个int,我可以执行以下操作,但必须有更高效的解决方案?

decimal test = 154.45m;
decimal newValue = Math.Floor(test / 50m) * 50.0m;
int testInt = Convert.ToInt32(newValue);

1 个答案:

答案 0 :(得分:5)

您可以通过投射获得int部分,而不是转换为int

int testInt = (int) Math.Floor(test / 50m) * 50.0m;

我不确定你会获得多少性能,但是Convert.ToInt32也可以舍入到最接近的32位整数,而转换只会给你int部分