Python Fonction round() avec des exemples
โก Rรฉsumรฉ intelligent
Python La fonction round() est une fonction intรฉgrรฉe qui renvoie une valeur ร virgule flottante ou entiรจre arrondie ร un nombre spรฉcifiรฉ de dรฉcimales, en utilisant l'arrondi bancaire pour dรฉpartager les รฉgalitรฉs vers le chiffre pair le plus proche.

Qu'est-ce que la fonction round() dans Python?
Python round() est une fonction intรฉgrรฉe disponible avec PythonElle vous renverra un nombre flottant arrondi au nombre de dรฉcimales indiquรฉ 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
- nombre_flottant : Le nombre flottant ร arrondir.
- nombre_de_dรฉcimales : (Facultatif) Nombre de dรฉcimales ร prendre en compte pour l'arrondi. Ce paramรจtre est facultatif ; s'il n'est pas spรฉcifiรฉ, la 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 vaut par dรฉfaut 0 s'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 chiffre aprรจs la virgule est :
- >= 5, alors + 1 sera ajoutรฉ ร la valeur finale.
- < 5, alors la valeur finale sera renvoyรฉe telle quelle, jusqu'aux dรฉcimales mentionnรฉes.
Valeur de retour
Elle renverra un entier si le nombre de dรฉcimales n'est pas spรฉcifiรฉ, et un nombre ร virgule flottante s'il est spรฉcifiรฉ. Veuillez noter que la valeur sera arrondie ร 1 si le nombre de dรฉcimales est supรฉrieur ou รฉgal ร 5 ; sinon, elle sera conservรฉe telle quelle, avec le nombre de dรฉcimales indiquรฉ.
Quel impact lโarrondi peut-il avoir ? (Arrondi ou troncature)
Le meilleur exemple pour illustrer l'impact de l'arrondi est le marchรฉ boursier. Auparavant, c'est-ร -dire en 1982, Bourse de Vancouver (VSE) utilisรฉ pour tronquer les valeurs boursiรจres ร trois dรฉcimales sur chaque transaction.
Cette opรฉration รฉtait effectuรฉe prรจs de 3 000 fois par jour. Les troncatures accumulรฉes entraรฎnaient une perte d'environ 25 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. Actuellement, je les gรฉnรจre pour une plage de 1 000 000 de secondes, entre 0.01 et 0.05.
Exemples :
arr = [random.uniform(0.01, 0.05) for _ in range(1000000)]
Pour illustrer l'impact de l'arrondi, j'ai รฉcrit un petit morceau de code dans lequel, dans un premier temps, on utilise les nombres jusqu'ร seulement 3 dรฉcimales, c'est-ร -dire en tronquant le nombre aprรจs 3 dรฉcimales.
J'ai la valeur totale initiale, le total obtenu ร partir des valeurs tronquรฉes, et la diffรฉrence entre la valeur initiale et la valeur tronquรฉe.
Sur le mรชme ensemble de nombres, j'ai utilisรฉ la mรฉthode round() jusqu'ร 3 dรฉcimales et calculรฉ 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 la valeur originale et la valeur tronquรฉe est de 499.9016193868665, et d'aprรจs round(), elle est de 0.04661938686695066.
La diffรฉrence semble trรจs importante, et l'exemple montre comment la mรฉthode round() permet d'obtenir des calculs d'une prรฉcision quasi parfaite.
Exemple : arrondi flottant Numbers
Dans ce programme, nous verrons comment fonctionne l'arrondi des nombres ร virgule flottante.
# 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 illustrant le fonctionnement de l'arrondi 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 : Arrondir les tableaux NumPy
Comment arrondir NumPy ? tableaux dans Python?
Pour rรฉsoudre ce problรจme, nous pouvons utiliser le module NumPy et la mรฉthode numpy.round() ou numpy.around(), comme illustrรฉ dans 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]
On peut รฉgalement utiliser numpy.around(), qui donne le mรชme rรฉsultat que numpy.round() prรฉsentรฉ ci-dessus.
Exemple : module dรฉcimal
En plus de la fonction round(), Python possรจde un module dรฉcimal qui permet de gรฉrer les nombres dรฉcimaux avec plus de prรฉcision.
Le module Dรฉcimal propose diffรฉrents types d'arrondi, comme indiquรฉ ci-dessous :
- PLAFOND_ROND : Elle tendra vers l'infini.
- ARRONDI_INF : Elle arrondira la valeur vers zรฉro.
- SOL_ROND : Elle s'arrondira vers -infini.
- ARRONDI_MIDI_INFรRIEUR : Elle sera arrondie ร la valeur la plus proche de zรฉro.
- ARRONDI_MIDI_PAIR : Elle sera arrondie ร la valeur la plus proche, en arrondissant ร l'entier pair le plus proche.
- ARRONDI_MIDI_SUP : Elle sera arrondie ร la valeur la plus proche, en s'รฉloignant de zรฉro.
- ARRONDI_UP : L'arrondi se fera lorsque 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
