2011-12-29 98 views

回答

40

简单,使用Math.Ceiling

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

我知道这是脱离主题,但我可以问你为什么使用'var'而不是'int'? – ken2k 2011-12-29 09:56:36

+3

纯粹出于习惯。例如'var myDictionary = new Dictionary >()'时,'var'可以用于声明较长类型的对象。 – 2011-12-29 09:57:40

+0

好的,谢谢你的回复! – ken2k 2011-12-29 10:01:02

5

像这样的事情?

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

为什么只转换为字符串才能解析?只需投它。 – 2011-12-29 09:40:40

+0

这当然更好。现在编辑我的答案。 – 2011-12-29 09:42:47

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--; 
-2
var d = 1.5m; 
var i = (int)Math.Ceiling(d); 
Console.Write(i); 
+0

这只是*数*,它并不一定围绕它** **。 – radoh 2016-03-23 14:39:26

0

之前说这是行不通的,你必须检查,在操作中的所有值是double类型。 这里是C#中的一个例子:

int speed= Convert.ToInt32(Math.Ceiling((double)distance/ (double)time)); 
相关问题