¿Cómo se redondea un número hacia ARRIBA?
¿Cómo se redondea un número hacia ARRIBA en Python?
Lo intenté round(number)
pero redondea el número hacia abajo. Aquí hay un ejemplo:
round(2.3) = 2.0
y no 3, como me gustaría.
Luego lo intenté, int(number + .5)
¡pero volvió a redondear el número hacia abajo! Ejemplo:
int(2.3 + .5) = 2
La función math.ceil (techo) devuelve el número entero más pequeño mayor o igual a x
.
Para Python 3:
import math
print(math.ceil(4.2))
Para Python 2:
import math
print(int(math.ceil(4.2)))
Sé que esta respuesta es para una pregunta de hace un tiempo, pero si no quieres importar matemáticas y solo quieres redondear, esto funciona para mí.
>>> int(21 / 5)
4
>>> int(21 / 5) + (21 % 5 > 0)
5
La primera parte se convierte en 4 y la segunda parte se evalúa como "Verdadero" si queda un resto, que además es Verdadero = 1; Falso = 0. Entonces, si no hay resto, entonces sigue siendo el mismo número entero, pero si hay resto, suma 1.
Si trabaja con números enteros, una forma de redondear hacia arriba es aprovechar el hecho de que //
se redondea hacia abajo: simplemente haga la división del número negativo y luego niegue la respuesta. No se necesita importación, punto flotante ni condicional.
rounded_up = -(-numerator // denominator)
Por ejemplo:
>>> print(-(-101 // 5))
21