c# - midpointrounding - Redondear un doble a int.
math.round java (4)
¿Estás preguntando acerca de System.Math.Ceiling ?
Math.Ceiling(0.2) == 1
Math.Ceiling(0.8) == 1
Math.Ceiling(2.6) == 3
Math.Ceiling(-1.4) == -1
Tengo un número ("doble") de int / int (como 10/3).
¿Cuál es la mejor manera de aproximar por exceso y convertirlo en int en C #?
Considere 2.42, puede decir que es 242/100 btw puede simplificarlo a 121/50.
Por "Aproximación por exceso", asumo que está tratando de "redondear" el número del tipo doble. Por lo tanto, el método de "techo" de @Doug McClean funciona bien.
Aquí hay una nota: si comienzas con double x = 0.8;
y haces la conversión de tipo por (int)x;
obtienes 0
. O, si lo hace (int)Math.Round(x);
obtienes 1
. Si comienzas con double y = 0.4;
y haces la conversión de tipo por (int)y;
obtienes 0
. O, si lo hace (int)Math.Round(y);
obtienes 0
.
int scaled = (int)Math.Ceiling( (double) 10 / 3 ) ;