C# 四舍五入除法
C# rounding with division
这个程序计算一个事件在一段时间内发生的次数。
问题是,当我得到十进制数时,程序不会按我想要的方式四舍五入,例如:如果我除以 7/5,我得到 1,是否有可能得到 2? 'double' 答案产生:1.4.
static void Main(string[] args) {
var kim = 7/5 ;
Console.WriteLine(kim);
Console.ReadKey();
}
我做的任何除法我都希望它四舍五入。
例如:7/5 = 1.4,但我希望它是2; 5/2 = 2.5,但我希望它是 3,等等
7/5
是整数除法。它总是向下舍入。您将需要一个 double
/decimal
分区和 Math.Ceiling
来汇总:
Math.Ceiling(7.0 / 5.0); // return 2.0
如果您的输入值为 int
,您必须至少将其中一个值转换为 double
Math.Ceiling((double)7 / 5);
正如 Jakub 所说,您可以使用 Math.Ceiling
,或者另一种选择是使用模数。如果模数大于0,说明有余数,要加1,否则加0即可。
static void Main(string[] args)
{
var kim = 7/5 + (7%5 > 0 ? 1 : 0);
Console.WriteLine(kim);
Console.ReadKey();
}
这个程序计算一个事件在一段时间内发生的次数。 问题是,当我得到十进制数时,程序不会按我想要的方式四舍五入,例如:如果我除以 7/5,我得到 1,是否有可能得到 2? 'double' 答案产生:1.4.
static void Main(string[] args) {
var kim = 7/5 ;
Console.WriteLine(kim);
Console.ReadKey();
}
我做的任何除法我都希望它四舍五入。
例如:7/5 = 1.4,但我希望它是2; 5/2 = 2.5,但我希望它是 3,等等
7/5
是整数除法。它总是向下舍入。您将需要一个 double
/decimal
分区和 Math.Ceiling
来汇总:
Math.Ceiling(7.0 / 5.0); // return 2.0
如果您的输入值为 int
,您必须至少将其中一个值转换为 double
Math.Ceiling((double)7 / 5);
正如 Jakub 所说,您可以使用 Math.Ceiling
,或者另一种选择是使用模数。如果模数大于0,说明有余数,要加1,否则加0即可。
static void Main(string[] args)
{
var kim = 7/5 + (7%5 > 0 ? 1 : 0);
Console.WriteLine(kim);
Console.ReadKey();
}