En este artículo, discutiremos cómo redondear números en Python con métodos adecuados y ejemplos de Cómo redondear Pitón .
Ejemplo:
Input: 3.5 Output: 4 Explanation: Nearest whole number. Input: 3.74 Output: 3.7 Explanation: Rounded to one decimal place.>
Redondear números en Python
Redondear un número significa simplificarlo manteniendo su valor intacto pero más cerca del siguiente número. Hay varios métodos para redondear números en Python. Aquí analizamos algunos de los que se utilizan generalmente para Cómo redondear en Python A continuación se detallan los siguientes puntos que se cubrirán en este artículo usando Python:
- Usando la función round() incorporada
- Usando Truncamiento concepto
- Usando Matemáticas.ceil() y Matemáticas.piso() funciones
- Usando matemáticas.ceil
- Usando piso.matematicas
- Utilizando el
numpy>Módulo - Utilizando el redondeo Concepto de sesgo
- Redondear a la mitad desde cero en Python
Números redondos en Python u cantar Incorporado redondo() Función
En Python, hay una función incorporada. función redonda () que redondea un número al número de dígitos dado. La función round() acepta dos argumentos numéricos, n y n dígitos, y luego devuelve el número n después de redondearlo a n dígitos. Si no se proporciona el número de dígitos para redondear, la función redondea el número dado n al entero más cercano.
dividir cadenas c++
Ejemplo : En este ejemplo, el siguiente código muestra la función `round()` para números enteros y de punto flotante. También ilustra el redondeo a dos decimales, lo que demuestra casos en los que el siguiente dígito es 5, mayor que 5 y menor que 5.
python3
# For integers> print>(>round>(>11>))> # For floating point> print>(>round>(>22.7>))> # if the second parameter is present> # when the (ndigit+1)th digit is =5> print>(>round>(>4.465>,>2>))> > # when the (ndigit+1)th digit is>=5> print>(>round>(>4.476>,>2>))> > # when the (ndigit+1)th digit is <5> print>(>round>(>4.473>,>2>))> |
>
>
Producción:
11 23 4.46 4.48 4.47>
Números redondos en Python u cantar Truncamiento concepto
En esta función, cada dígito después de una posición determinada se reemplaza por 0. Python truncar() función Se puede utilizar con números positivos y negativos. La función de truncamiento se puede implementar de la siguiente manera:
- Multiplicando el número por 10^p (10 elevado a pthpotencia) para desplazar el punto decimal p lugares hacia la derecha.
- Tomando la parte entera de ese nuevo número usando int().
- Desplazar el lugar decimal p lugares hacia la izquierda dividiendo por 10^p.
python3
# defining truncate function> # second argument defaults to 0> # so that if no argument is passed> # it returns the integer part of number> def> truncate(n, decimals>=> 0>):> >multiplier>=> 10> *>*> decimals> >return> int>(n>*> multiplier)>/> multiplier> print>(truncate(>16.5>))> print>(truncate(>->3.853>,>1>))> print>(truncate(>3.815>,>2>))> # we can truncate digits towards the left of the decimal point> # by passing a negative number.> print>(truncate(>346.8>,>->1>))> print>(truncate(>->2947.48>,>->3>))> |
>
>
Producción:
16.0 -3.8 3.81 340.0 -2000.0>
Números redondos en Python u cantar Matemáticas.ceil() y Matemáticas.piso() funciones
Matemáticas . fortificar techo() : Esta función devuelve el número entero más cercano que sea mayor o igual a un número determinado.
Matemáticas.piso() : Esta función devuelve el número entero más cercano menor o igual a un número determinado.
Ejemplo :En este ejemplo, el siguiente código utiliza la biblioteca `math` para calcular valores máximos para decimales positivos y negativos con `math.ceil` y valores mínimos con `math.floor`. Las salidas son 5, 0, 2 y -1 para los casos respectivos.
python3
# import math library> import> math> # ceil value for positive> # decimal number> print>(math.ceil(>4.2>))> # ceil value for negative> # decimal number> print>(math.ceil(>->0.5>))> # floor value for decimal> # and negative number> print>(math.floor(>2.2>))> print>(math.floor(>->0.5>))> |
>
>
Producción:
5 0 2 -1>
Números redondos en Python u cantar matemáticas.ceil
Redondear un número implica desplazar el punto decimal hacia la derecha, redondearlo hacia arriba y luego volver a desplazarlo hacia la izquierda para mayor precisión usando ` matemáticas.ceil() ` y operaciones de multiplicación/división.
Ejemplo :En este ejemplo, el siguiente código define una función `round_up` usando la biblioteca `math`, que redondea un número a un lugar decimal específico. Utiliza multiplicación, redondeo con `math.ceil()` y división para mayor precisión. Los valores positivos y negativos se prueban para redondear.
python3
# import math library> import> math> # define a function for> # round_up> def> round_up(n, decimals>=> 0>):> >multiplier>=> 10> *>*> decimals> >return> math.ceil(n>*> multiplier)>/> multiplier> # passing positive values> print>(round_up(>2.1>))> print>(round_up(>2.23>,>1>))> print>(round_up(>2.543>,>2>))> # passing negative values> print>(round_up(>22.45>,>->1>))> print>(round_up(>2352>,>->2>))> |
>
>
Producción:
3.0 2.3 2.55 30.0 2400.0>
Podemos seguir el diagrama a continuación para comprender el redondeo hacia arriba y hacia abajo. Redondea hacia arriba a la derecha y hacia abajo a la izquierda.

Redondear hacia arriba siempre redondea un número hacia la derecha en la recta numérica y redondear hacia abajo siempre redondea un número hacia la izquierda en la recta numérica.
Números redondos en Python u cantar piso.matematicas
En Redondeo hacia abajo, un número se redondea hacia abajo a un número específico de dígitos. La función de redondeo hacia abajo se puede implementar de la siguiente manera:
- Primero, el punto decimal en n se desplaza al número correcto de lugares hacia la derecha multiplicando n por 10 ** decimales.
- El nuevo valor se redondea al número entero más cercano usando matemáticas.piso() .
- Finalmente, el punto decimal se desplaza nuevamente hacia la izquierda dividiendo por 10 ** decimales.
python3
import> math> # defining a function for> # round down.> def> round_down(n, decimals>=>0>):> >multiplier>=> 10> *>*> decimals> >return> math.floor(n>*> multiplier)>/> multiplier> # passing different values to function> print>(round_down(>2.5>))> print>(round_down(>2.48>,>1>))> print>(round_down(>->0.5>))> |
>
>
Producción:
2.0 2.4 -1.0>
Números redondos en Python u cantar módulo Numpy
El módulo NumPy en Python proporciona la numpy.round()>función para redondear números. Esta función redondea cada elemento de una matriz al número entero más cercano o al número especificado de decimales.
Ejemplo : En este ejemplo, el siguiente código utiliza el módulo NumPy para crear una matriz `arr` y redondea cada elemento al entero más cercano (`rounded_integers`) y a dos decimales (`rounded_decimals`). Luego, los resultados se imprimen para su visualización.
Python3
import> numpy as np> # Creating an array> arr>=> np.array([>1.234>,>2.567>,>3.789>])> # Rounding each element to the nearest integer> rounded_integers>=> np.>round>(arr)> # Rounding each element to two decimal places> rounded_decimals>=> np.>round>(arr, decimals>=>2>)> # Displaying the results> print>(>'Nearest integer:'>, rounded_integers)> print>(>'Decimal places:'>, rounded_decimals)> |
>
>
Producción :
Nearest integer: [1. 3. 4.] Decimal places: [1.23 2.57 3.79]>
Números redondos en Python u cantar Sesgo de redondeo concepto.
El concepto de simetría introduce la noción de sesgo de redondeo, que describe cómo el redondeo afecta a los datos numéricos de un conjunto de datos.
La estrategia de redondeo hacia arriba tiene un sesgo de redondeo hacia el infinito positivo, ya que el valor siempre se redondea hacia el infinito positivo. De manera similar, la estrategia de redondeo hacia abajo tiene un sesgo redondo hacia el infinito negativo. La estrategia de truncamiento tiene un sesgo de ronda hacia el infinito negativo en valores positivos y una ronda hacia el infinito positivo para valores negativos. Se dice que las funciones de redondeo con este comportamiento tienen un sesgo de redondeo hacia cero, en general.
a) Redondear a la mitad concepto en Python
El redondeo a la mitad redondea cada número al número más cercano con la precisión especificada y rompe los empates redondeando hacia arriba.
La estrategia de redondeo a la mitad se implementa desplazando el punto decimal hacia la derecha el número deseado de lugares. En este caso tendremos que determinar si el dígito que sigue a la coma desplazada es menor o mayor que 5.
Podemos sumar 0,5 al valor que se desplaza y luego redondearlo hacia abajo con la función math.floor().
Implementación de la función round_half_up():
Ejemplo: En este ejemplo, el siguiente código define `round_half_up`, una función de redondeo personalizada que utiliza el método de redondeo a la mitad con `math.floor()` para mayor precisión. Las demostraciones incluyen números positivos y negativos con varios decimales.
python3
import> math> # defining round_half_up> def> round_half_up(n, decimals>=>0>):> >multiplier>=> 10> *>*> decimals> >return> math.floor(n>*> multiplier>+> 0.5>)>/> multiplier> # passing different values to the function> print>(round_half_up(>1.28>,>1>))> print>(round_half_up(>->1.5>))> print>(round_half_up(>->1.225>,>2>))> |
>
>
Producción:
1.3 -1.0 -1.23>
b) Redondear la mitad hacia abajo concepto en Python
Esto redondea al número más cercano, similar al método de redondeo a la mitad, la diferencia es que rompe los empates redondeando al menor de los dos números. La estrategia de redondeo a la mitad hacia abajo se implementa reemplazando math.floor() en la función round_half_up() con math.ceil() y luego restando 0,5 en lugar de sumar.
Implementación de la función round_half_down():
En este ejemplo, el siguiente código define `round_half_down` usando la biblioteca `math` para lograr un comportamiento de redondeo a la mitad hacia abajo. Utiliza multiplicación, resta y `math.ceil()` para redondear hacia cero. Los casos de prueba incluyen decimales positivos y negativos, redondeando a un decimal.
python3
# import math library> import> math> # defining a function> # for round_half_down> def> round_half_down(n, decimals>=>0>):> >multiplier>=> 10> *>*> decimals> >return> math.ceil(n>*> multiplier>-> 0.5>)>/> multiplier> # passing different values to the function> print>(round_half_down(>2.5>))> print>(round_half_down(>->2.5>))> print>(round_half_down(>2.25>,>1>))> |
>
>
Producción:
2.0 -3.0 2.2>
Redondear a la mitad desde cero en Python
Para redondear la mitad desde cero, lo que debemos hacer es comenzar como de costumbre desplazando el punto decimal hacia la derecha un número determinado de lugares y luego notar el dígito (d) inmediatamente a la derecha del lugar decimal en el nuevo número. Hay cuatro casos para considerar:
- Si n es positivo y d>= 5, redondea hacia arriba
- Si n es positivo y d = 5, redondea hacia abajo
- Si n es negativo y d>= 5, redondea hacia abajo
- Si n es negativo y d <5, redondea hacia arriba
Después de redondear según las reglas mencionadas anteriormente, podemos desplazar el decimal nuevamente hacia la izquierda.
- Redondear la mitad para igualar: Hay una manera de mitigar el sesgo de redondeo mientras redondeamos valores en un conjunto de datos. Simplemente podemos redondear los vínculos al número par más cercano con la precisión deseada. La estrategia de redondear de mitad a par es la estrategia utilizada por la ronda () integrada de Python. El clase decimal proporciona soporte para aritmética rápida de coma flotante decimal redondeada correctamente. Esto ofrece varias ventajas sobre el tipo de datos flotante. La estrategia de redondeo predeterminada en el módulo decimal es ROUND_HALF_EVEN.
Ejemplo: En este ejemplo, el siguiente código utiliza la función 'Decimal' de la biblioteca 'decimal' para representar números decimales con precisión. Contrasta la creación de un objeto 'Decimal' a partir de una cadena y directamente a partir de un número de punto flotante. Luego, la función `quantize()` se emplea para redondear con decimales específicos, lo que demuestra precisión en la aritmética decimal.
python3
# import Decimal function from> # decimal library> from> decimal>import> Decimal> print>(Decimal(>'0.1'>))> print>(Decimal(>0.1>))> # Rounding a Decimal number is> # done with the .quantize() function> # '1.0' in .quantize() determines the> # number of decimal places to round the number> print>(Decimal(>'1.65'>).quantize(Decimal(>'1.0'>)))> print>(Decimal(>'1.675'>).quantize(Decimal(>'1.00'>)))> |
>
>
Producción:
0.1 0.1000000000000000055511151231257827021181583404541015625 1.6 1.68>