C# 哪个数学函数将为我提供正确的舍入功能?

C# 哪个数学函数将为我提供正确的舍入功能?,c#,math,rounding,C#,Math,Rounding,我有以下代码行: var loan = (int)(Math.Truncate((usableIncome / avgRate) / loanMultiple) * loanMultiple); 现在,正如你所看到的,我正在使用Math.Truncate来始终取数字的整数部分。所以,如果方程的值是5.1,5.5或5.9,我总是会回到5 我需要换个地方,这样我才能找到最近的整数。5.1仍然是5,而5.5、5.9将分解为6。我不在乎5.5的方式 有人建议在这种情况下使用哪种功能最好 提前谢谢 使用

我有以下代码行:

var loan = (int)(Math.Truncate((usableIncome / avgRate) / loanMultiple) * loanMultiple);
现在,正如你所看到的,我正在使用Math.Truncate来始终取数字的整数部分。所以,如果方程的值是5.1,5.5或5.9,我总是会回到5

我需要换个地方,这样我才能找到最近的整数。5.1仍然是5,而5.5、5.9将分解为6。我不在乎5.5的方式

有人建议在这种情况下使用哪种功能最好


提前谢谢

使用以下方法:

double num = (((double)usableIncome / (double)avgRate) / (double)loanMultiple) * loanMultiple);
var loan = Convert.ToInt32(Math.Round(num, MidpointRounding.AwayFromZero));

使用以下方法:

double num = (((double)usableIncome / (double)avgRate) / (double)loanMultiple) * loanMultiple);
var loan = Convert.ToInt32(Math.Round(num, MidpointRounding.AwayFromZero));

您可以使用内置的Round函数

  var loan = Math.Round(((usableIncome / avgRate) / loanMultiple) * loanMultiple),MidpointRounding.AwayFromZero);

您可以使用内置的Round函数

  var loan = Math.Round(((usableIncome / avgRate) / loanMultiple) * loanMultiple),MidpointRounding.AwayFromZero);

听起来你在寻找方法:

将十进制值舍入为最接近的整数。参数指定 如果值介于两个数字之间,如何对其进行四舍五入

输出将是

5
6
6

这里有一个。

听起来像是在寻找一种方法:

将十进制值舍入为最接近的整数。参数指定 如果值介于两个数字之间,如何对其进行四舍五入

输出将是

5
6
6
这里的a.

Math.Round()就是这样做的。例如:

Console.WriteLine(Math.Round(4.4)); // 4
Console.WriteLine(Math.Round(4.5)); // 4
Console.WriteLine(Math.Round(4.6)); // 5
Console.WriteLine(Math.Round(5.5)); // 6
如果您需要更多信息,可以阅读

Math。Round()正是这样做的。例如:

Console.WriteLine(Math.Round(4.4)); // 4
Console.WriteLine(Math.Round(4.5)); // 4
Console.WriteLine(Math.Round(4.6)); // 5
Console.WriteLine(Math.Round(5.5)); // 6
如果您需要更多信息,可以阅读

尝试:

var loan = (int)(Math.Round((usableIncome / avgRate) / loanMultiple) * loanMultiple);
尝试:


为什么不用数学呢

Math.Round(5.4,0);
//Gives 5
Math.Round(5.5,0);
//Gives 6
Math.Round(5.6,0);
//Gives 6

为什么不用数学呢

Math.Round(5.4,0);
//Gives 5
Math.Round(5.5,0);
//Gives 6
Math.Round(5.6,0);
//Gives 6

可以使用Math.Round()函数。可以使用Math.Round()函数。选择此答案是因为它还演示了此函数上可用的舍入选项。选择此答案是因为它还演示了此函数上可用的舍入选项。