C#用除法取整

本文关键字:除法 | 更新日期: 2023-09-27 18:28:04

此程序计算一个事件在一段时间内发生的实例数量。问题是,当我得到十进制数字时,程序不会按照我想要的方式四舍五入,例如:如果我除以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,等等。

C#用除法取整

7/5是整数除法。它总是四舍五入。您将需要double/decimal划分和Math.Ceiling来取整:

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

如果您的输入值是int s,则必须将其中至少一个值强制转换为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();
}