2011-12-29 1 views

risposta

40

semplice, utilizzare Math.Ceiling:

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

So che è fuori tema, ma posso chiederti perché hai usato 'var' e non' int'? – ken2k

+3

Puramente per abitudine. 'var' può essere utile quando si dichiarano oggetti di tipo più lungo come' var myDictionary = new Dictionary >() 'per esempio. –

+0

Ok, grazie per la risposta! – ken2k

5

qualcosa di simile?

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

Perché convertire in una stringa solo per eseguire il parsing? Basta lanciarlo. –

+0

Ovviamente è meglio. Modificato la mia risposta ora. –

0

Math.Ceiling non funziona per me, io uso questo codice e questo lavoro :)

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

e se si vuole arrotondare numero negativo per giù ad esempio rotonda -1.1 a -2 uso questo

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

Questo * arrotonda * semplicemente il numero, non necessariamente lo arrotonda ** su **. – radoh

0

Prima di dire che non funziona, è necessario verificare che tutti i valori nella operazione sono doppie tipo. Ecco un esempio in C#:

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