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

Lia*_*iam 0 c#

从这个问题开始: C#如何总是向下舍入到最近的50

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

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

Hab*_*bib 5

int您可以int通过强制转换来获取零件,而不是转换为.

int testInt = (int) Math.Floor(test / 50m) * 50.0m;
Run Code Online (Sandbox Code Playgroud)

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