Comment arrondir des nombres en Python ?

Article publié le mardi 5 septembre 2023 et mis à jour le samedi 17 février 2024.

Comment arrondir des nombres en Python ?

Pour faire l’arrondi en Python on utilise la fonction round().

La fonction round() permet d’arrondir un nombre décimal à l’entier le plus proche. Elle permet aussi d’arrondir des nombres à virgule à une décimale donnée.

Voyons un exemple concret directement :

nombre = round(42.21)  # 42
print(nombre)

Ce qui donne pour la valeur de la variable nombre :

42

Explications vidéo pour faire l’arrondi en moins d’une minute :

Que renvoie round quand la partie décimale est 0.5 ?

Si la partie entière est paire, le nombre est arrondi à la partie entière la plus proche.

print(round(14.5))  # 14

Si la partie entière est impaire, le nombre est arrondi à l’entier pair le plus proche.

print(round(3.5))  # 4

Donnera 4 et pas 3 comme on pourrait le penser.

En Python, quand la nombre partie décimale du nombre est 0.5, on fait l’arrondi bancaire (“round half to even” en anglais) : on prend le nombre pair le plus proche.

Comment specifier si on veut arrondir vers le bas ou vers le haut ?

Pour arrondir vers le haut ou vers le bas, on peut utiliser les fonctions ceil() et floor() du module math de Python.

import math

haut = math.ceil(42.1)
bas = math.floor(42.1)

print(haut)
print(bas)

Ce qui donne pour les valeurs des variables haut et bas :

43  # haut
42  # bas

Comment arrondir à une décimale en Python ?

La fonction round() prend un deuxième paramètre : le nombre de décimales que vous voulez arrondir.

nombre = round(42.214284, 2)
print(nombre)

Ce qui donnera pour la valeur de la variable nombre :

42.21

💡 Vous souhaitez en apprendre plus sur cette fonction native ? Alors mon article sur la fonction round vous intéressera sûrement !

Comment faire l’arrondi vers le haut en Python ?

La fonction ceil() du module math de Python permet d’arrondir un nombre vers son entier supérieur.

import math

nombre = math.ceil(42.000001)
print(nombre)

Ce qui donnera pour la valeur de la variable nombre :

43

La fonction ceil() a arrondi notre nombre à l’entier supérieur bien que 42.000001 soit plus proche de 42 que de 43.

Comment faire l’arrondi vers le bas en Python ?

La fonction floor() du module math de Python permet d’arrondir un nombre vers son entier inférieur.

import math

nombre = math.floor(42.999999)
print(nombre)

Ce qui donnera pour la valeur de la variable nombre :

42

La fonction floor() a arrondi notre nombre à l’entier supérieur bien que 42.999999 soit plus proche de 43 que de 42.

Comment arrondir en nombre entier avec la fonction int ?

On peut aussi arrondir un float vers le bas avec la fonction int(). Techniquement on tronque le nombre plutôt que faire l’arrondi, mais utiliser int() peut être une bonne manière d’arrondir vers le nombre entier le plus proche de 0.

>>> int(-3)
-3

>>> int(3.14)
3

>>> int(-3.5)
-3

>>> int(3.9)
3

math.trunc pour tronquer un nombre

On utilise la fonction math.trunc du module math en Python pour tronquer un nombre à sa partie entière en supprimant la partie décimale, sans réellement effectuer d’arrondi. Comme int(), on peut l’utiliser pour enlever la partie décimale d’un nombre et l’arrondir vers le nombre le plus proche de 0.

import math

>>> math.trunc(-3)
-3

>>> math.trunc(3.14)
3

>>> math.trunc(-3.5)
-3

>>> math.trunc(3.9)
3

La fonction rint de numpy pour arrondir à l’entier

La fonction numpy.rint de NumPy en Python est utilisée pour arrondir les éléments d’un tableau à l’entier le plus proche. “Rint” signifie “round to the nearest integer” (arrondir à l’entier le plus proche).

Pour les valeurs exactement entre deux nombres entiers, NumPy fera l’arrondi bancaire et arrondira vers la valeur pair la plus proche :

  • numpy.rint(4.2) donnera 4
  • alors que numpy.rint(3.2) donnera 4.

Arrondir avec numpy.fix

La fonction fix de NumPy prend un nombre ou un tableau de floats et les arrondis à l’entier le plus proche vers 0. Les nombres positifs sont donc arrondis vers le bas, les nombres négatifs sont arrondis vers le haut. Les valeurs retournées sont des nombres flottants.

import numpy as np

>>> np.fix(-3)
-3.0

>>> np.fix(3.14)
3.0

>>> np.fix(-3.5)
-3.0

>>> np.fix(3.9)
3.0

>>> np.fix([3.1, 3.9, -3.1, -3.9])
array([ 3.,  3., -3., -3.])

Récapitulatif des manières de faire l’arrondi

Fonction pour arrondir -4.8 -4.5 -4.2 4.2 4.5 4.8
round -5 -4 -4 4 4 5
int -4 -4 -4 4 4 4
math.ceil -4 -4 -4 5 5 5
math.floor -5 -5 -5 4 4 4
math.trunc -4 -4 -4 4 4 4
numpy.rint -5 -4 -4 4 4 5
numpy.fix -4 -4 -4 4 4 4

Comment allez-vous faire l’arrondi ?

Bravo ! Vous savez maintenant quelles sont les 3 manières natives à Python pour arrondir des nombres 🎉

On a vu ensemble comment arrondir un nombre vers l’entier le plus proche, vers l’entier inférieur ou supérieur et également en donnant un nombre de décimales.

N’hésitez pas à vous inscrire à la liste email ci-dessous si vous voulez plus d’astuces en programmation.

Pensez aussi à suivre les autres tutoriels en Python dans la catégorie Python de ce site !

Comment Coder

Je m'appelle Thomas. J'ai commencé à coder dans mon enfance. Depuis ma sortie de la première promo de l'École 42, j'ai développé des centaines d'applications et sites web. Sur ce blog, je vous donne les meilleurs conseils et astuces pour apprendre comment apprendre à coder efficacement.