十进制/双精度到整数 - 向上舍入(不仅仅是最近)

时间:2011-12-29 09:35:29

标签: c# numbers

你如何向上舍入小数或浮点数为整数。例如......

0.0 => 0
0.1 => 1
1.1 => 2
1.7 => 2
2.1 => 3

5 个答案:

答案 0 :(得分:45)

简单,使用Math.Ceiling

var wholeNumber = (int)Math.Ceiling(fractionalNumber);

答案 1 :(得分:5)

这样的东西?

int myInt = (int)Math.Ceiling(myDecimal);

答案 2 :(得分:0)

Math.Ceiling不适合我,我使用这段代码和这项工作:)

int MyRoundedNumber= (int) MyDecimalNumber;
                if (Convert.ToInt32(MyDecimalNumber.ToString().Split('.')[1]) != 0)
                    MyRoundedNumber++;

如果你想将负数舍入为倒数,例如将-1.1转为-2,则使用此

  int MyRoundedNumber= (int) MyDecimalNumber;
                    if (Convert.ToInt32(MyDecimalNumber.ToString().Split('.')[1]) != 0)
                        if(MyRoundedNumber>=0)
                           MyRoundedNumber++;
                        else
                           MyRoundedNumber--;

答案 3 :(得分:0)

在说它不起作用之前,你必须检查操作中的所有值是双重类型。 这是C#中的一个例子:

 int speed= Convert.ToInt32(Math.Ceiling((double)distance/ (double)time));

答案 4 :(得分:-2)

var d = 1.5m;
var i = (int)Math.Ceiling(d);
Console.Write(i);