Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Fonction Python round() avec EXEMPLES

Rond()

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

Si les décimales à arrondir ne sont pas spécifiées, elles sont considérées comme 0 et arrondies à l'entier le plus proche.

Dans ce tutoriel Python, vous apprendrez :

Syntaxe :

round(float_num, num_of_decimals)

Paramètres

Description

La méthode round() prend deux arguments

Le deuxième argument est facultatif et prend par défaut la valeur 0 lorsqu'il n'est pas spécifié. Dans ce cas, il arrondira à 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, elles arrondiront au nombre de décimales donné. Le type de retour sera un flottant.

Si le nombre après la décimale indiqué

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 vs Troncature)

Le meilleur exemple pour montrer l'impact de l'arrondi est celui du marché boursier. Dans le passé, c'est-à-dire en 1982, la Bourse de Vancouver (VSE) :utilisée pour tronquer les valeurs des actions à trois décimales sur chaque transaction.

Cela a été fait près de 3000 fois par jour. Les troncatures accumulées entraînent 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 de stock. En ce moment, je le génère pour une gamme de

1 000 000 secondes entre 0,01 et 0,05.

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, au début, vous devez utiliser les nombres jusqu'à seulement 3 décimales, c'est-à-dire tronquer 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'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 l'original et après la troncation est de 499,9016193868665, et de rond, elle 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 :Arrondir les nombres flottants

Dans ce programme, nous verrons comment arrondir des 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

S'il vous arrive d'utiliser 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 des nombres négatifs

Voyons quelques exemples de la façon dont l'arrondi fonctionne sur les 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 :Array Numpy Arrays

Comment arrondir les tableaux numpy 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 indiqué 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]

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 a un module décimal qui aide à 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 :

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 indiqué dans l'exemple ci-dessous.

Exemple :

Utilisation des méthodes round() et decimal

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é :


Python

  1. Fonction Python Anonyme/Lambda
  2. Générateurs Python
  3. Fermetures Python
  4. Décorateurs Python
  5. Surcharge d'opérateur C++ avec des exemples
  6. Fonctions C++ avec exemples de programmes
  7. Instruction Python Print() :comment imprimer avec des exemples
  8. Python String strip() Fonction avec EXAMPLE
  9. Python String count() avec des EXEMPLES