Saltar al contenido

Función Python round() con EJEMPLOS

diciembre 8, 2019

Redondo()

Round() es una función incorporada disponible con python. Le devolverá un número de flotador que se redondeará a los decimales que se dan como entrada.

Si no se especifican los decimales a redondear, se considera como 0, y se redondeará al entero más cercano.

En este Tutorial de Python, aprenderás:

  • Redondo()
  • Sintaxis:
  • ¿Cuánto Impacto Puede Tener el Redondeo? (Redondeo vs Truncamiento)
  • Ejemplo: Redondeo de números flotantes
  • Ejemplo: Redondeo de valores enteros
  • Ejemplo: Redondeo de números negativos
  • Ejemplo: Arreglos Numpy Redondos
  • Ejemplo: Módulo decimal

Sintaxis:

redondo(float_num, num_de_decimales)

>

Parámetros

  • float_num: el número de flotador a redondear.
  • num_de_de_decimales: (optativo) El número de decimales que se tendrán en cuenta al redondear. Es opcional, y si no se especifica, por defecto es 0, y el redondeo se realiza al entero más cercano.

Descripción

El método round() toma dos argumentos

  • el número que debe redondearse y
  • los decimales que debe tener en cuenta al redondear.

El segundo argumento es opcional y por defecto es 0 cuando no se especifica, y en tal caso, redondeará al entero más cercano, y el tipo de retorno también será un entero.

Cuando los decimales, es decir, el segundo argumento, están presentes, se redondearán al número de lugares indicados. El tipo de retorno será un flotador.

Si el número después del decimal dado

  • =5 que +1 se sumará al valor final
  • <5 que el valor final volverá, ya que está hasta los decimales mencionados.

Valor de retorno

Devolverá un valor entero si no se da el número de decimales y un valor flotante si se da el número de decimales. Tenga en cuenta que el valor se redondeará a +1 si el valor después del punto decimal es >=5, de lo contrario, devolverá el valor tal como está hasta los decimales mencionados.

¿Cuánto Impacto Puede Tener el Redondeo? (Redondeo vs Truncamiento)

El mejor ejemplo para mostrar el impacto del redondeo es el de la bolsa de valores. En el pasado, es decir, en el año 1982, la Bolsa de Valores de Vancouver (VSE): se utilizaba para truncar los valores de las acciones a tres decimales en cada operación.

Se hacía casi 3000 veces al día. Los truncamientos acumulados provocan una pérdida de unos 25 puntos al mes.

A continuación se muestra un ejemplo de truncamiento de los valores frente al redondeo.

Considere los números de punto flotante generados a continuación como valores de stock. Ahora mismo lo estoy generando para un rango de

1.000.000 de segundos entre 0,01 y 0,05.

Ejemplos:

arr =[random.uniform(0.01, 0.05) for _ in range(1000000)][Uniforme aleatorio(0.01, 0.05) para _ en rango

>

Para mostrar el impacto del redondeo, he escrito un pequeño fragmento de código en el que, al principio, es necesario utilizar los números hasta 3 decimales, es decir, truncar el número después de 3 decimales.

Tengo el valor total original, el total que proviene de los valores truncados y la diferencia entre el valor original y el truncado.

En el mismo conjunto de números, he estado usando el método round() hasta 3 decimales y calculando la suma y la diferencia entre el valor original y el valor redondeado.

Aquí están el ejemplo y la salida

Ejemplo 1

importar aleatoriamente
def truncate(num):
return int(num * 1000) / 1000
arr =[random.uniform(0.01, 0.05) para _ dentro del rango(1000000)]][Arr =[random.uniform(0.01, 0.05) for _ in range(1000000)]
sum_num = 0
sum_truncate = 0
for i in arr:
sum_num = sum_num + i
sum_truncate = truncate(sum_truncate + i)
print(«Comprobación mediante truncamiento de hasta 3 decimales»)
print(«La suma original es = «, sum_num)
print(«The total using truncate = «, sum_truncate)
print(«La diferencia del original – truncate = «, sum_num – sum_truncate)
print(»
«)
print(«Comprobación mediante redondeo() hasta 3 decimales»)
sum_num1 = 0
sum_truncate1 = 0
for i in arr:
sum_num1 = sum_num1 + i
sum_truncate1 = redondo(sum_truncate1 + i, 3)
print(«La suma original es =», sum_num1)
print(«The total using round = «, sum_truncate1)
print(«La diferencia del original – redondo =», sum_num1 – sum_truncate1)
>

Salida:

>

La diferencia entre el original y después de truncar es 499.9016193868665, y desde redondo, es 0.04661938686695066

.

La diferencia parece ser muy grande, y el ejemplo muestra cómo redondear () método ayuda en el cálculo cerca de la precisión.

Ejemplo: Redondeo de números flotantes

En este programa, veremos cómo redondear palabras en números flotantes

# ronda de pruebas()
float_num1 = 10.60 # aquí el valor se redondeará a 11 ya que después del punto decimal el número es 6 que es >=5
float_num2 = 10.40 # aquí el valor se redondeará a 10, ya que después del punto decimal el número es 4, es decir, <5
float_num3 = 10.3456 # aquí el valor será 10.35 ya que después de los 2 decimales el valor >=5
float_num4 = 10.3445 #aquí el valor será 10.34 ya que después de los 2 puntos decimales el valor es <5
print(«El valor redondeado sin num_de_decimales es :», round(float_num1))
print(«El valor redondeado sin num_de_decimales es :», round(float_num2))
print(«El valor redondeado con num_de_decimales como 2 es :», round(float_num3, 2))
print(«El valor redondeado con num_de_decimales como 2 es :», round(float_num4, 2))
>

Salida:

El valor redondeado sin num_de_decimales es

El valor redondeado sin num_decimales es 
El valor redondeado sin num_decimales es 
El valor redondeado es 
El valor redondeado sin num_decimales es : 11
El valor redondeado sin num_de_decimales es : 10
El valor redondeado con num_de_decimales como 2 es : 10.35
El valor redondeado con num_de_decimales como 2 es : 10.34

>

Ejemplo: Redondeo de valores enteros

Si usas round() en un valor entero, te devolverá el número sin ningún cambio.

# round() en un entero
num = 15
print("La salida es", redondo(num))

>

Salida:

La salida es de 15
>

Ejemplo: Redondeo de números negativos

Veamos algunos ejemplos de cómo funciona el redondeo en números negativos

# ronda de pruebas()
num = -2,8
num1 = -1.5
print("El valor después del redondeo es", round(num))
print("El valor después del redondeo es", round(num1))
>

Salida:

>

Ejemplo: Arreglos Numpy Redondos

¿Cómo redondear matrices numéricas en python?

Para resolver esto, podemos hacer uso del módulo numpy y usar el método numpy.round() o numpy.around(), como se muestra en el siguiente ejemplo.

Usando numpy.round()

# ronda de pruebas()
import numpy as np
arr =[-0.34111111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323]
arr1 = np.round(arr, 2)
print(arr1)
>

Salida:

>

También podemos usar numpy.around(), que le da el mismo resultado que se muestra en el siguiente ejemplo.

Ejemplo: Módulo decimal

Además de la función round(), python tiene un módulo decimal que ayuda a manejar los números decimales con mayor precisión.

El módulo Decimal viene con tipos de redondeo, como se muestra a continuación:

  • ROUND_CEILING: redondeará hacia Infinity,
  • ROUND_DOWN: redondeará el valor hacia cero,
  • ROUND_FLOOR: redondeará hacia -Infinity,
  • ROUND_HALF_DOWN: redondeará al valor más cercano que vaya hacia cero,
  • ROUND_HALF_EVEN: redondeará al más cercano con un valor que va al entero más cercano,
  • ROUND_HALF_UP: redondeará al más cercano con un valor que se aleja de cero
  • ROUND_UP: redondeará donde el valor se alejará de cero.

En decimal, el método quantize() ayuda a redondear a un número fijo de decimales, y se puede especificar el redondeo a utilizar, como se muestra en el ejemplo siguiente.

Ejemplo:

Usando métodos redondos() y decimales

importar decimal
redondo_num = 15.456
final_val = redondo(redondo_num, 2)
#Usando el módulo decimal
final_val1 = decimal.decimal(round_num).quantize(decimal.decimal($00270.00$0027), rounding=decimal.ROUND_CEILING)
final_val2 = decimal.decimal(round_num).quantize(decimal.decimal($00270.00$0027), rounding=decimal.ROUND_DOWN)
final_val3 = decimal.decimal(round_num).quantize(decimal.decimal($00270.00$0027), rounding=decimal.ROUND_FLOOR)
final_val4 = decimal.decimal(round_num).quantize(decimal.decimal($00270.00$0027), rounding=decimal.ROUND_HALF_DOWN)
final_val5 = decimal.decimal(round_num).quantize(decimal.decimal($00270.00$0027), rounding=decimal.ROUND_HALF_EVEN)
final_val6 = decimal.decimal(round_num).quantize(decimal.decimal($00270.00$0027), rounding=decimal.ROUND_HALF_UP)
final_val7 = decimal.decimal(round_num).quantize(decimal.decimal($00270.00$0027), rounding=decimal.ROUND_UP)
print(«Using round()», final_val)
print(«Using Decimal – ROUND_CEILING «,final_val1)
print(«Using Decimal – ROUND_DOWN «,final_val2)
print(«Uso de Decimal – ROUND_FLOOR «,final_val3)
print(«Using Decimal – ROUND_HALF_DOWN «,final_val4)
print(«Using Decimal – ROUND_HALF_EVEN «,final_val5)
print(«Using Decimal – ROUND_HALF_UP «,final_val6)
print(«Usando Decimal – ROUND_UP «,final_val7)
>

Salida:

Utilizando round() 15.46
Uso de Decimal – ROUND_CEILING 15.46
Uso de Decimal – ROUND_DOWN 15.45
Uso de Decimal – ROUND_FLOOR 15.45
Uso de Decimal – ROUND_HALF_DOWN 15.46
Usando Decimal – ROUND_HALF_EVEN 15.46
Uso de Decimal – ROUND_HALF_UP 15.46
Uso de Decimal – ROUND_UP 15.46
>

Resumen:

  • Round(float_num, Num_of_decimals) es una función incorporada disponible con python. Le devolverá el número de flotador que se redondeará a los decimales que se dan como entrada.
  • float_num: el número de flotador a redondear.
  • Num_de_de_decimales: Es el número de decimales que se deben considerar al redondear.
  • Devolverá un valor entero si no se da el número de decimales y un valor flotante si se da el número de decimales.