哪个数学函数会给我正确的舍入功能?

dot*_*oob 1 c# math rounding

我有以下代码行:

var loan = (int)(Math.Truncate((usableIncome / avgRate) / loanMultiple) * loanMultiple);
Run Code Online (Sandbox Code Playgroud)

目前,正如您所看到的,我正在使用Math.Truncate来始终取数字的整数部分.因此,如果等式抛出5.1,5.5或5.9,我总是回到5.

我需要进行更改,以便达到最接近的整数.5.1仍然是5,5.5,5.9将解析为6.我真的不关心5.5的方式.

有人建议哪些是在这些情况下使用的最佳功能?

提前致谢.

Son*_*nül 5

听起来像你正在寻找Math.Round(Double, MidpointRounding)方法:

将十进制值舍入为最接近的整数.参数指定如果值在两个数字之间的中间位置,则如何舍入值.

Console.WriteLine(Math.Round(5.1, MidpointRounding.AwayFromZero));
Console.WriteLine(Math.Round(5.5, MidpointRounding.AwayFromZero));
Console.WriteLine(Math.Round(5.9, MidpointRounding.AwayFromZero));
Run Code Online (Sandbox Code Playgroud)

输出将是;

5
6
6
Run Code Online (Sandbox Code Playgroud)

这里一个demonstration.