Python Fonction round() avec des EXEMPLES

Rond ()

Round() est une fonction intรฉgrรฉe disponible avec python. Il vous renverra un nombre flottant qui sera arrondi aux dรฉcimales donnรฉes en entrรฉe.

Si les dรฉcimales ร  arrondir ne sont pas prรฉcisรฉes, il est considรฉrรฉ comme 0 et il sera arrondi ร  l'entier le plus proche.

Syntaxe

round(float_num, num_of_decimals)

Paramรจtres

  • float_num : le nombre flottant ร  arrondir.
  • num_of_decimals : (facultatif) Le nombre de dรฉcimales ร  prendre en compte lors de l'arrondi. Il est facultatif et s'il n'est pas spรฉcifiรฉ, sa valeur par dรฉfaut est 0 et l'arrondi est effectuรฉ ร  l'entier le plus proche.

Description

La mรฉthode round() prend deux arguments

  • le nombre ร  arrondir et
  • les dรฉcimales ร  prendre en compte lors de l'arrondi.

Le deuxiรจme argument est facultatif et la valeur par dรฉfaut est 0 lorsqu'il n'est pas spรฉcifiรฉ. Dans ce cas, il sera arrondi ร  l'entier le plus proche et le type de retour sera รฉgalement un entier.

Lorsque les dรฉcimales, c'est-ร -dire le deuxiรจme argument, sont prรฉsentes, l'arrondi sera effectuรฉ au nombre de dรฉcimales indiquรฉ. Le type de retour sera un float.

Si le nombre aprรจs la dรฉcimale indiquรฉ

  • >=5 que + 1 sera ajoutรฉ ร  la valeur finale
  • <5 que la valeur finale sera renvoyรฉe telle qu'elle correspond aux dรฉcimales mentionnรฉes.

Valeur de retour

Il renverra une valeur entiรจre si le num_of_decimals n'est pas donnรฉ et une valeur flottante si le num_of_decimals est donnรฉ. Veuillez noter que la valeur sera arrondie ร  +1 si la valeur aprรจs la virgule est >=5, sinon elle renverra la valeur telle qu'elle est jusqu'aux dรฉcimales mentionnรฉes.

Quel impact lโ€™arrondi peut-il avoir ? (Arrondi ou troncature)

Le meilleur exemple pour montrer lโ€™impact de lโ€™arrondi est celui du marchรฉ boursier. Dans le passรฉ, c'est-ร -dire en 1982, le Bourse de Vancouver (VSE) : utilisรฉ pour tronquer les valeurs boursiรจres ร  trois dรฉcimales sur chaque transaction.

Cela se faisait prรจs de 3000 25 fois par jour. Les troncatures accumulรฉes entraรฎnent une perte d'environ points par mois.

Un exemple de troncature des valeurs par rapport ร  lโ€™arrondi est prรฉsentรฉ ci-dessous.

Considรฉrez les nombres ร  virgule flottante gรฉnรฉrรฉs ci-dessous comme des valeurs boursiรจres. En ce moment, je le gรฉnรจre pour une gamme de

1,000,000 0.01 0.05 de secondes entre et .

Exemples :

arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]

Pour montrer l'impact de l'arrondi, j'ai รฉcrit un petit morceau de code dans lequel, dans un premier temps, vous devez utiliser les nombres jusqu'ร  seulement 3 dรฉcimales, c'est-ร -dire en tronquant le nombre aprรจs 3 dรฉcimales.

J'ai la valeur totale d'origine, le total provenant des valeurs tronquรฉes et la diffรฉrence entre la valeur d'origine et la valeur tronquรฉe.

Sur le mรชme ensemble de nombres, j'utilise la mรฉthode round() jusqu'ร  3 dรฉcimales et calcule la somme et la diffรฉrence entre la valeur d'origine et la valeur arrondie.

Voici l'exemple et le rรฉsultat
Exemple 1

import random

def truncate(num):
    return int(num * 1000) / 1000

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("Testing by using truncating upto 3 decimal places")
print("The original sum is = ", sum_num)
print("The total using truncate = ", sum_truncate)
print("The difference from original - truncate = ", sum_num - sum_truncate)

print("\n\n")
print("Testing by using round() upto 3 decimal places")
sum_num1 = 0
sum_truncate1 = 0
for i in arr:
    sum_num1 = sum_num1 + i        
    sum_truncate1 = round(sum_truncate1 + i, 3)


print("The original sum is =", sum_num1)
print("The total using round = ", sum_truncate1)
print("The difference from original - round =", sum_num1 - sum_truncate1)

Sortie :

Testing by using truncating upto 3 decimal places
The original sum is =  29985.958619386867
The total using truncate =  29486.057
The difference from original - truncate =  499.9016193868665



Testing by using round() up to 3 decimal places
The original sum is = 29985.958619386867
The total using round =  29985.912
The difference from original - round = 0.04661938686695066

La diffรฉrence entre l'original et aprรจs troncature est de 499.9016193868665, et celle du rond est de 0.04661938686695066.

La diffรฉrence semble รชtre trรจs grande, et l'exemple montre comment la mรฉthode round() aide ร  calculer avec une prรฉcision proche.

Exemple : arrondi flottant Numbers

Dans ce programme, nous verrons comment arrondir les mots sur des nombres flottants

# testing round() 

float_num1 = 10.60 # here the value will be rounded to 11 as after the decimal point the number is 6 that is >5 

float_num2 = 10.40 # here the value will be rounded to 10 as after the decimal point the number is 4 that is <=5

float_num3 = 10.3456 # here the value will be 10.35 as after the 2 decimal points the value >=5 

float_num4 = 10.3445 #here the value will be 10.34 as after the 2 decimal points the value is <5 

print("The rounded value without num_of_decimals is :", round(float_num1))
print("The rounded value without num_of_decimals is :", round(float_num2))
print("The rounded value with num_of_decimals as 2 is :", round(float_num3, 2))
print("The rounded value with num_of_decimals as 2 is :", round(float_num4, 2))

Sortie :

The rounded value without num_of_decimals is : 11
The rounded value without num_of_decimals is : 10
The rounded value with num_of_decimals as 2 is : 10.35
The rounded value with num_of_decimals as 2 is : 10.34

Exemple : arrondir des valeurs entiรจres

Si vous utilisez round() sur une valeur entiรจre, il vous renverra simplement le nombre sans aucune modification.

# testing round() on a integer

num = 15

print("The output is", round(num))

Sortie :

The output is 15

Exemple : Arrondir sur le nรฉgatif Numbers

Voyons quelques exemples de la faรงon dont fonctionne l'arrondi sur des nombres nรฉgatifs

# testing round()

num = -2.8
num1 = -1.5
print("The value after rounding is", round(num))
print("The value after rounding is", round(num1))

Sortie :

C:\pythontest>python testround.py
The value after rounding is -3
The value after rounding is -2

Exemple : tableaux Numpy ronds

Comment arrondir numpy tableaux en python?

Pour rรฉsoudre ce problรจme, nous pouvons utiliser le module numpy et utiliser la mรฉthode numpy.round() ou numpy.around(), comme le montre l'exemple ci-dessous.

Utiliser numpy.round()

# testing round()
import numpy as np

arr = [-0.341111, 1.455098989, 4.232323, -0.3432326, 7.626632, 5.122323]

arr1 = np.round(arr, 2)

print(arr1)

Sortie :

C:\pythontest>python testround.py
[-0.34  1.46  4.23 -0.34  7.63  5.12]

Nous pouvons รฉgalement utiliser numpy.around(), qui vous donne le mรชme rรฉsultat que celui indiquรฉ dans l'exemple ci-dessous.

Exemple : module dรฉcimal

En plus de la fonction round(), python dispose d'un module dรฉcimal qui permet de gรฉrer les nombres dรฉcimaux avec plus de prรฉcision.

Le module Decimal est livrรฉ avec des types d'arrondi, comme indiquรฉ ci-dessous :

  • ROUND_CEILING : il arrondira vers l'Infini,
  • ROUND_DOWN : il arrondira la valeur vers zรฉro,
  • ROUND_FLOOR : il arrondira vers -Infini,
  • ROUND_HALF_DOWN : il arrondira ร  la valeur la plus proche en allant vers zรฉro,
  • ROUND_HALF_EVEN : il arrondira au plus proche avec la valeur allant ร  l'entier pair le plus proche,
  • ROUND_HALF_UP : il arrondira au plus proche avec une valeur s'รฉloignant de zรฉro
  • ROUND_UP : il arrondira lร  oรน la valeur s'รฉloignera de zรฉro.

En dรฉcimal, la mรฉthode quantize() permet d'arrondir ร  un nombre fixe de dรฉcimales, et vous pouvez spรฉcifier l'arrondi ร  utiliser, comme le montre l'exemple ci-dessous.
Exemple :
Utilisation des mรฉthodes round() et dรฉcimales

import  decimal 
round_num = 15.456

final_val = round(round_num, 2)

#Using decimal module
final_val1 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_CEILING)
final_val2 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_DOWN)
final_val3 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_FLOOR)
final_val4 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_DOWN)
final_val5 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_EVEN)
final_val6 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_HALF_UP)
final_val7 = decimal.Decimal(round_num).quantize(decimal.Decimal('0.00'), rounding=decimal.ROUND_UP)

print("Using round()", final_val)
print("Using Decimal - ROUND_CEILING ",final_val1)
print("Using Decimal - ROUND_DOWN ",final_val2)
print("Using 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("Using Decimal - ROUND_UP ",final_val7)

Sortie :

Using round() 15.46
Using Decimal - ROUND_CEILING  15.46
Using Decimal - ROUND_DOWN  15.45
Using Decimal - ROUND_FLOOR  15.45
Using Decimal - ROUND_HALF_DOWN  15.46
Using Decimal - ROUND_HALF_EVEN  15.46
Using Decimal - ROUND_HALF_UP  15.46
Using Decimal - ROUND_UP  15.46

Rรฉsumรฉ

  • Round(float_num, Num_of_decimals) est une fonction intรฉgrรฉe disponible avec python. Il vous renverra le nombre flottant qui sera arrondi aux dรฉcimales donnรฉes en entrรฉe.
  • float_num : le nombre flottant ร  arrondir.
  • Num_of_decimals : C'est le nombre de dรฉcimales ร  prendre en compte lors de l'arrondi.
  • Il renverra une valeur entiรจre si le num_of_decimals n'est pas donnรฉ et une valeur flottante si le num_of_decimals est donnรฉ.

Rรฉsumez cet article avec :