C#舍入除法

时间:2015-12-24 00:14:10

标签: c# math algebra

此程序计算事件在一段时间内发生的实例数量。 问题在于,当我得到十进制数时,程序不能满足我的要求,例如:如果我除7/5我得到1,是否有可能获得2? '双'答案产生: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等等。

2 个答案:

答案 0 :(得分:7)

7/5是整数除法。它将永远向下舍入。您需要double / decimal部门和Math.Ceiling进行整理:

Math.Ceiling(7.0 / 5.0);  // return 2.0

如果您的输入值为int s,则必须至少将其中一个投射到double

Math.Ceiling((double)7 / 5);

答案 1 :(得分:3)

正如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();
}