2011-12-29 10 views

Respuesta

40

simple, utilice Math.Ceiling:

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

Sé que está fuera de tema, pero ¿puedo preguntarte por qué usaste 'var' y no' int'? – ken2k

+3

Puramente por costumbre. 'var' puede ser útil al declarar objetos de un tipo más largo como' var myDictionary = new Dictionary >() 'por ejemplo. –

+0

Ok, gracias por la respuesta! – ken2k

5

Algo como esto?

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

¿Por qué convertir a una cadena solo para analizar? Solo echalo. –

+0

Eso es, por supuesto, mejor. Editado mi respuesta ahora. –

0

Math.Ceiling que no trabaja para mí, yo uso este código y este trabajo :)

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

y si desea redondear cifras negativas al bajar por ejemplo redonda -1.1 -2 a su uso este

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

Esto solo * redondea * el número, no necesariamente lo redondea ** hacia arriba **. – radoh

0

Antes de decir que no funciona, usted tiene que comprobar que todos los valores en la operación son del tipo doble. Aquí hay un ejemplo en C#:

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