从这个问题开始: 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);
答案 0 :(得分:5)
您可以通过投射获得int
部分,而不是转换为int
。
int testInt = (int) Math.Floor(test / 50m) * 50.0m;
我不确定你会获得多少性能,但是Convert.ToInt32
也可以舍入到最接近的32位整数,而转换只会给你int
部分