我有以下代码行:
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的方式.
有人建议哪些是在这些情况下使用的最佳功能?
提前致谢.
听起来像你正在寻找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
.