2012-02-15 18 views
15

Tengo un número ("doble") de int/int (como 10/3).Redondear un doble a int

¿Cuál es la mejor manera de aproximación por exceso y convertirlo a int en C#?

+0

¿Qué es 'Aproximación por exceso'? –

+0

Uhm ... ¿quizás no sé cómo llamarlo en inglés? :) Bueno, si tienes 0.2-> 1; 0.8-> 1 ... y así sucesivamente ... "redondo" a la siguiente int? – markzzz

+5

¿Quiere decir '(int) Math.Ceiling (x)'? – CodesInChaos

Respuesta

43

¿Preguntas sobre System.Math.Ceiling?

Math.Ceiling(0.2) == 1 
Math.Ceiling(0.8) == 1 
Math.Ceiling(2.6) == 3 
Math.Ceiling(-1.4) == -1 
+11

Math.Ceiling (-1.4) == - 2 - ¿Qué idioma es ese? Dime su nombre para que pueda evitarlo como la peste. –

+1

Vaya, lo arruiné. Lo busqué, pero leí mal el ejemplo. –

0

Considera 2.42, puedes decir que es 242/100 por cierto, puedes simplificarlo a 121/50.

+2

Creo que me estás tomando el pelo? Bueno ... – markzzz

+1

¡tu pregunta no estaba clara! Creo que te refieres a Math.Ceiling – mrbm

6
int scaled = (int)Math.Ceiling((double) 10/3) ; 
+4

Creo que necesita convertirlo para que esto funcione ... es decir 'int int. = Int (int) Math.Ceiling ((doble 10/3);' –

Cuestiones relacionadas