Accéder au contenu principal

Arrondir à 2 décimales en Python : 7 méthodes expliquées

Découvrez comment arrondir un nombre à deux décimales en Python avec round(), les f-strings, format(), le module decimal, NumPy et plus — avec un tableau comparatif des méthodes.
Actualisé 2 juin 2026  · 7 min lire

Arrondir des nombres à deux décimales est une technique essentielle en Python. Elle est particulièrement utile pour les calculs financiers, la présentation de données et les rapports scientifiques.

Python propose plusieurs méthodes pour un arrondi précis. Dans ce tutoriel, je vous montre comment arrondir un nombre à deux décimales en Python à l'aide de fonctions intégrées, de bibliothèques et de méthodes de formatage.

Si vous débutez comme analyste de données, je vous recommande le cours Introduction to Python de DataCamp pour apprendre les bases de Python pour la manipulation et la transformation de données. Notre tutoriel Python NumPy vous sera également utile si vous devez arrondir de grands tableaux de nombres dans des workflows d'analyse.

À retenir

  • Utilisez round(number, 2) pour un arrondi arithmétique — la valeur est réellement modifiée.

  • Utilisez f"{number:.2f}" ou str.format() pour l'affichage uniquement — le float d'origine reste inchangé.

  • Utilisez le module decimal lorsque vous avez besoin d'une précision décimale exacte (p. ex. calculs financiers).

  • Utilisez np.round(array, 2) pour arrondir un tableau NumPy entier en une seule instruction.

  • Attention aux surprises liées à la précision des floats : round(2.675, 2) renvoie 2.67, et non 2.68, à cause de la façon dont les nombres flottants sont stockés en mémoire.

Renforcer les compétences en matière d'apprentissage automatique

Améliorez vos compétences en matière d'apprentissage automatique au niveau de la production.
Commencez à apprendre gratuitement

Comprendre l'arrondi et les décimales

Les décimales correspondent aux chiffres situés immédiatement après la virgule dans un nombre. Elles sont importantes car elles déterminent la précision du nombre : plus il y a de décimales, plus la valeur est précise, et inversement.

Arrondir un nombre consiste à ajuster ce nombre en réduisant le nombre de décimales. Cette technique sert généralement à simplifier un résultat tout en gardant de la cohérence entre les calculs. Néanmoins, arrondir à un certain nombre de décimales peut affecter l'exactitude des valeurs calculées en introduisant de petites erreurs.

Python propose différentes méthodes pour arrondir à deux décimales. Les exemples ci-dessous détaillent ces techniques.

Utiliser round() pour arrondir un nombre en Python

La fonction round() est la fonction native de Python pour arrondir les nombres flottants au nombre de décimales souhaité. Vous indiquez le nombre de décimales via le second argument. L'exemple ci-dessous affiche 34,15.

# Example number to be rounded
number = 34.14559

# Rounding the number to 2 decimal places
rounded_number = round(number, 2)

print(rounded_number)

# 34.15

Par défaut, round() utilise la règle "arrondi à l'entier pair" (round half to even) lorsque vous omettez le second argument. Avec cette règle (arrondi bancaire), lorsqu'une valeur est exactement à mi-chemin entre deux entiers, elle est arrondie vers l'entier pair le plus proche. Cette approche limite les erreurs d'arrondi cumulées.

Attention à la précision des floats avec round()

Une subtilité à connaître avant d'utiliser round() en finance. Essayez ceci :

print(round(2.675, 2))  # You might expect 2.68
# Output: 2.67

Le résultat est 2.67, et non 2.68. La valeur 2.675 ne peut pas être représentée exactement en virgule flottante binaire (IEEE 754) ; la valeur stockée est légèrement inférieure à 2.675, donc Python arrondit à la baisse.

Si vous avez besoin d'un arrondi exact pour des calculs financiers, utilisez le module decimal avec un mode d'arrondi explicite :

from decimal import Decimal, ROUND_HALF_UP

result = Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP)
print(result)  # 2.68

Utiliser le formatage de chaînes pour arrondir un nombre en Python

Les techniques de formatage de chaînes sont pratiques pour arrondir à deux décimales, notamment lors de l'affichage d'un résultat.

Gardez à l'esprit qu'avec ces techniques, l'arrondi est produit pour l'affichage sous forme de chaîne, mais le nombre d'origine reste inchangé. Si vous effectuez des calculs sur la valeur initiale, ils se basent sur la valeur non arrondie, ce qui peut surprendre.

Arrondir avec l'opérateur %

L'opérateur % propose une méthode traditionnelle pour formater des nombres à deux décimales. Il permet de créer des chaînes formatées en insérant des valeurs dans des espaces réservés.

Dans l'exemple ci-dessous, f indique un nombre flottant et .2 précise le nombre de décimales.

# Example number to be rounded
number = 3.14159

# Using the % operator to round to 2 decimal places
formatted_number = "%.2f" % number

print(formatted_number)

# 3.14

Arrondir avec str.format()

La méthode str.format() offre une manière plus flexible de gérer des besoins de formatage plus complexes. Comme elle permet d'utiliser des espaces réservés nommés, les développeurs la préfèrent souvent à l'opérateur %. Dans l'exemple suivant, :.2f à l'intérieur des accolades spécifie un arrondi à deux décimales. Le code affichera 3.14.

# Example number to be rounded
number = 3.14159

# Using str.format() to round to 2 decimal places
formatted_number = "{:.2f}".format(number)

print(formatted_number)

# 3.14

Arrondir avec les f-strings (Python 3.6+)

Les f-strings sont apparues avec Python 3.6 et constituent aujourd'hui la façon privilégiée d'insérer des valeurs dans des chaînes. La syntaxe f-string est particulièrement claire pour l'arrondi : vous formatez l'affichage en une seule ligne, sans appel séparé. Le code ci-dessous affiche 14.68.

# Example number to be rounded
number = 14.67856

# Using f-strings to round to 2 decimal places
formatted_number = f"{number:.2f}"

print(formatted_number)

# 14.68

Utiliser format() pour arrondir un nombre en Python

La fonction intégrée format() prend une valeur et une spécification de format, puis renvoie une chaîne formatée. Contrairement à str.format(), vous passez le nombre directement plutôt que de l'insérer dans un gabarit. Le code ci-dessous affiche 345.69.

# Example number to be rounded
number = 345.68776

# Using the built-in format() to round to 2 decimal places
formatted_number = format(number, ".2f")

print(formatted_number)

# 345.69

Utiliser d'autres modules pour arrondir un nombre en Python

Au-delà du Python de base, plusieurs modules permettent d'arrondir des nombres. Voici trois exemples majeurs : math, decimal et NumPy.

Arrondir avec le module math

Le module math ne propose pas de fonction qui arrondit directement à un nombre précis de décimales. Cependant, vous pouvez le combiner avec de l'arithmétique pour arrondir à deux décimales.

La fonction math.floor() arrondit un nombre à l'entier inférieur. Pour arrondir à deux décimales, multipliez par 100, appliquez math.floor(), puis divisez par 100. Le code ci-dessous affiche 3.14.

# Import math module
import math

# Example number to be rounded
number = 3.14159

# Using math.floor() to round down to 2 decimal places
rounded_down = math.floor(number * 100) / 100

print(rounded_down)

# 3.14

De même, math.ceil() arrondit à l'entier supérieur. Pour arrondir à deux décimales, multipliez par 100, appliquez math.ceil(), puis divisez par 100. Le code ci-dessous affiche 3.15.

# Import the math module
import math

# Example number to be rounded
number = 3.14159

# Using math.ceil() to round up to 2 decimal places
rounded_up = math.ceil(number * 100) / 100

print(rounded_up)

# 3.15

Arrondir avec le module decimal

Le module decimal de Python est utile pour arrondir avec une précision décimale exacte via la méthode .quantize(). Dans l'exemple ci-dessous, nous fixons la précision à 0.01 pour indiquer un arrondi à deux décimales.

# Import the decimal module
from decimal import Decimal

# Example number to be rounded
number = Decimal("18.73869")

# Define the rounding precision to 2 decimal places
precision = Decimal('0.01')

# Using the quantize method with ROUND_UP 
# to round the number up to 2 decimal places
rounded_number = number.quantize(precision)

print(rounded_number)

# 18.74

Si vous recherchez un comportement d'arrondi à la hausse spécifique, consultez notre dernier tutoriel How to Round Up a Number in Python pour en savoir plus sur l'utilisation des modules math et decimal, ainsi que d'autres techniques pour forcer un arrondi à la hausse plutôt qu'à la baisse. Pour une vision plus large de la transformation de données, parcourez notre parcours Data Analyst with Python pour développer vos compétences analytiques.

Arrondir avec NumPy

Avec des tableaux NumPy, utilisez np.round() pour arrondir tous les éléments d'un coup. C'est plus rapide et plus lisible que de boucler manuellement.

import numpy as np

prices = np.array([1.2345, 9.8765, 3.14159])
rounded_prices = np.round(prices, 2)

print(rounded_prices)
# [1.23 9.88 3.14]

np.round() applique la même règle d'arrondi bancaire que la fonction round() de Python. La méthode .round() fonctionne de la même façon sur les DataFrames et Series pandas :

import pandas as pd

df = pd.DataFrame({"price": [1.2345, 9.8765, 3.14159]})
df["price_rounded"] = df["price"].round(2)

print(df)
#      price  price_rounded
# 0   1.2345           1.23
# 1   9.8765           9.88
# 2  3.14159           3.14

Pour une vue d'ensemble de la transformation de données avec pandas, consultez notre tutoriel pandas.

Quand utiliser chaque méthode d'arrondi en Python

Voici un aide-mémoire pour choisir la bonne approche :

Méthode Idéale pour Modifie la valeur ? Retourne
round(x, 2) Arithmétique générale Oui float
f"{x:.2f}" Affichage / impression Non str
str.format() Affichage / impression Non str
% operator Affichage / impression (héritage) Non str
format(x, ".2f") Affichage / valeur unique Non str
math.floor() / ceil() Toujours arrondir vers le bas / vers le haut Oui float
Decimal.quantize() Finance / décimal exact Oui Decimal
np.round(arr, 2) Tableaux NumPy Oui ndarray

Quelques règles simples pour orienter votre choix :

  • Affichage uniquement ? Utilisez une f-string (f"{x:.2f}"). Une ligne, pas d'import, et aucune incidence sur la valeur d'origine.

  • Besoin de continuer les calculs ? Utilisez round(x, 2). Elle renvoie un float avec lequel vous pouvez poursuivre.

  • Code financier ou comptable ? Utilisez Decimal.quantize(). Les surprises de précision des floats (round(2.675, 2) == 2.67) n'arrivent pas avec le module decimal.

  • Toujours vers le haut ou vers le bas ? Utilisez math.ceil() ou math.floor(). Elles ignorent les règles d'arrondi classiques.

  • Vous travaillez avec un tableau NumPy ou une colonne pandas ? Utilisez np.round(arr, 2) ou series.round(2). Les deux traitent l'ensemble en une fois.

  • Maintenance d'ancien code ? L'opérateur % fonctionne toujours, mais les f-strings l'ont remplacé depuis Python 3.6 — privilégiez-les dans le nouveau code.

Pour conclure

Arrondir à deux décimales est une technique clé pour gagner en précision dans les calculs financiers et scientifiques. Dans cet article, nous avons passé en revue différentes méthodes : fonctions natives, formatage de chaînes et module math. L'important est de choisir la méthode adaptée à vos contraintes, qu'il s'agisse de précision ou de style d'affichage. Je vous encourage à pratiquer ces approches avec divers exemples pour identifier celle qui convient le mieux à vos cas d'usage.

Pour aller plus loin en Python, découvrez notre parcours de compétences Python Programming, qui couvre les fonctions, les décorateurs et des motifs Python avancés. Notre parcours de carrière Python Developer est également conçu pour vous faire monter en compétences en tant que développeur tout en abordant des structures de données et des algorithmes avancés.

Devenez un scientifique ML

Maîtriser Python pour devenir un scientifique de l'apprentissage automatique

Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Je crée des articles qui simplifient la science des données et l'analyse, en les rendant faciles à comprendre et accessibles.

Questions fréquentes

Quelle est la manière la plus simple d'arrondir un nombre à deux décimales en Python ?

La manière la plus simple d'arrondir un nombre à deux décimales consiste à utiliser la fonction native round().

Pourquoi un nombre est-il arrondi à l'entier le plus proche avec la fonction round() ?

Par défaut, round() applique l'arrondi à l'entier pair. Pour arrondir un nombre à deux décimales, vous devez fournir 2 comme second argument, c.-à-d. round(3.14159, 2).

Comment utilise-t-on la fonction format() pour arrondir un nombre à deux décimales ?

La fonction format() permet d'arrondir un nombre au nombre de décimales souhaité et de l'afficher dans une chaîne formatée.

Qu'est-ce que l'arrondi à l'entier pair (round half to even) ?

L'arrondi à l'entier pair (banker's rounding) consiste à arrondir une valeur exactement à mi-chemin entre deux entiers vers l'entier pair le plus proche.

Le module math permet-il d'arrondir un nombre à deux décimales en Python ?

Vous ne pouvez utiliser math.floor() et math.ceil() qu'en les combinant avec des opérations arithmétiques pour arrondir à un nombre précis de décimales.

Pourquoi round(2.675, 2) renvoie 2.67 au lieu de 2.68 ?

Il s'agit d'un problème de précision en virgule flottante. La valeur 2.675 ne peut pas être représentée exactement en binaire (IEEE 754) ; la valeur stockée est légèrement inférieure à 2.675, donc Python arrondit à 2.67.

Pour éviter cela en finance, utilisez le module decimal avec un mode d'arrondi explicite : Decimal("2.675").quantize(Decimal("0.01"), rounding=ROUND_HALF_UP) renvoie bien 2.68.

Comment arrondir toutes les valeurs d'un DataFrame pandas à 2 décimales ?

Utilisez la méthode .round() sur un DataFrame ou une Series. Pour arrondir une seule colonne : df["price"] = df["price"].round(2). Pour arrondir toutes les colonnes numériques d'un coup : df = df.round(2).

Sujets

Apprenez Python avec DataCamp

Cours

Introduction à Python

4 h
6.9M
Apprenez les bases de l’analyse de données avec Python en quatre heures et explorez ses principaux packages.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Contenus associés

Tutoriel

Tableaux Python

Tableaux Python avec exemples de code. Découvrez comment créer et imprimer des tableaux à l'aide de Python NumPy dès aujourd'hui.
DataCamp Team's photo

DataCamp Team

Tutoriel

Comment diviser des listes en Python : Exemples de base et méthodes avancées

Apprenez à diviser des listes Python à l'aide de techniques telles que le découpage, les compréhensions de listes et itertools. Veuillez découvrir quand utiliser chaque méthode pour une gestion optimale des données.
Allan Ouko's photo

Allan Ouko

Tutoriel

Tutoriel sur la fonction range() en Python

Découvrez la fonction range() de Python et ses capacités à l'aide d'exemples.
Aditya Sharma's photo

Aditya Sharma

Tutoriel

Tutoriel Python : concaténation de chaînes de caractères

Découvrez différentes méthodes pour concaténer des chaînes de caractères en Python, avec des exemples illustrant chaque technique.
DataCamp Team's photo

DataCamp Team

Tutoriel

Tutoriel et exemples sur les fonctions et méthodes des listes Python

Découvrez les fonctions et méthodes des listes Python. Veuillez suivre les exemples de code pour list() et d'autres fonctions et méthodes Python dès maintenant.
Abid Ali Awan's photo

Abid Ali Awan

Voir plusVoir plus