Comment arrondir un nombre en Python (fonction round() et décimal)
Apprenez à arrondir les nombres à virgule flottante en Python. Comprenez l'arrondi de Banker, la précision décimale personnalisée et le formatage des flottants pour l'affichage.
Aperçu
L'arithmétique à virgule flottante dans les ordinateurs peut parfois entraîner des problèmes de précision inattendus en raison de la façon dont les systèmes binaires stockent les décimales (par exemple, « 0,1 + 0,2 » évalué à « 0,30000000000000004 »). Lors de la présentation de chiffres aux utilisateurs ou de la préparation de métriques, l’arrondi des chiffres est une exigence courante. Python propose plusieurs façons d'y parvenir.
L'outil principal est la fonction intégrée `round(number, ndigits)`. Cela prend un nombre et un nombre de précision facultatif. Si « ndigits » est omis, il est arrondi à l'entier le plus proche. Si « ndigits » est fourni, il arrondit à ce nombre de décimales.
Une propriété clé de la fonction `round()` de Python est qu'elle utilise "l'arrondi du banquier" (arrondi de la moitié au pair). Lorsqu'un nombre est exactement à mi-chemin entre deux nombres entiers (par exemple, « 2,5 » ou « 3,5 »), Python arrondit au nombre *pair* le plus proche. Cela signifie que « round(2.5) » est « 2 » et « round(3.5) » est « 4 ». Bien que mathématiquement équitable sur de grands ensembles de données pour éviter un biais à la hausse, pour des calculs financiers précis, vous devez utiliser les outils de quantification du module « décimal ».
Sortie de code et d'exécution
Ce script montre l'arrondi des flottants à l'aide de la fonction d'arrondi intégrée, des exemples d'arrondi de Banker et du module décimal.
from decimal import Decimal, ROUND_HALF_UP
val = 3.14159
# 1. Round to nearest integer
print("Nearest Integer:", round(val))
# 2. Round to 2 decimal places
print("Two decimals:", round(val, 2))
# 3. Banker's Rounding demonstration (rounds to nearest even)
print("round(2.5):", round(2.5)) # Nearest even is 2
print("round(3.5):", round(3.5)) # Nearest even is 4
# 4. Math rounding up (Traditional rounding) using decimal module
amount = Decimal("2.5")
rounded_up = amount.quantize(Decimal("1"), rounding=ROUND_HALF_UP)
print("Decimal ROUND_HALF_UP (2.5):", rounded_up)Nearest Integer: 3
Two decimals: 3.14
round(2.5): 2
round(3.5): 4
Decimal ROUND_HALF_UP (2.5): 3Mise en œuvre étape par étape
- Appelez la fonction intégrée round(number) pour arrondir un flottant à l’entier entier le plus proche.
- Passez un deuxième argument (par exemple, round(num, 2)) pour spécifier le nombre de décimales à conserver.
- Utilisez le module décimal avec ROUND_HALF_UP pour des calculs d'arrondi financier stricts.
Foire aux questions
Pourquoi round(2.5) renvoie-t-il 2 au lieu de 3 en Python ?
Python utilise l'arrondi de Banker, qui arrondit les demi-nombres à l'entier pair le plus proche. Cela réduit les biais statistiques (arrondir la moitié des nombres entraîne toujours une légère dérive vers le haut sur de grands ensembles de données).
Comment arrondir un nombre toujours vers le haut ou toujours vers le bas ?
Importez le module mathématique et utilisez math.ceil(x) pour arrondir à l'entier supérieur, ou math.floor(x) pour arrondir à l'entier précédent.
Sujets connexes
Apprenez les meilleures techniques de formatage de chaînes en Python. Comparez les f-strings modernes, le format() et le formatage en pourcentage avec des exemples de code.
Comment convertir une chaîne en Int en PythonApprenez à convertir une chaîne en entier en Python à l'aide de la fonction int(). Gérez les erreurs en toute sécurité et convertissez les nombres binaires, octaux ou hexadécimaux.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Variables et types de données Python expliqués
Comprendre les variables Python et les types de données de base (chaînes, entiers, flottants, booléens). Un guide complet pour débutants sur l'affectation de mémoire en Python.
Aide-mémoire sur les méthodes du dictionnaire Python
Apprenez les méthodes du dictionnaire Python. Guide de référence complet pour les insertions, les récupérations, les mises à jour et les vérifications de paires clé-valeur.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.