Comment arrondir un nombre décimal en python ?

Active 03 juin 2014    /    Viewed 130147    /    Comments 0    /    Edit

Exemples de comment arrondir un nombre réel en python

Arrondir un nombre réel

Pour arrondir un nombre réel il existe la fonction python round :

>>> round(3.1415)

Arrondir un nombre réel en gardant 1 décimale

>>> x = 1.4567
>>> round(x,1)

Arrondir un nombre réel en gardant 2 décimales

>>> x = 1.4567
>>> round(x,2)

Convertir un nombre réel en entier

>>> x = 3.1415
>>> x = int(x)
>>> x
>>> type(x)
<class 'int'>

Note: donne la même chose que la fonction round()

>>> x = round(3.1415)
>>> type(x)
<class 'int'>
>>> x

Arrondir une matrice de nombres réels

Pour arrondir les éléments d'une matrice, une solution est d'utiliser la fonction numpy around, exemple:

>>> import numpy as np
>>> a = np.array(([1.24,3.46,5.34]))
>>> a
array([1.24, 3.46, 5.34])
>>> np.around(a, decimals=1)
array([1.2, 3.5, 5.3])

Pour convertir une matrice de nombres réels en nombre entier il y a la fonction astype:

>>> import numpy as np
>>> a = np.array(([1,24,3.46,5.34]))
>>> a
array([ 1.  , 24.  ,  3.46,  5.34])
>>> a.astype(int)
array([ 1, 24,  3,  5])

Arrondir un nombre complexe

>>> z = 2.14 + 3.47j
>>> round(z.real, 1) + round(z.imag, 1) * 1j

Utiliser format pour incorporer un nombre dans une chaîne de caractères

Si l'objectif est d'arrondir un nombre réel pour ensuite l'insérer dans une chaîne de caractères, le plus simple est d'utiliser format()

>>> s = 'Pi value is {:06.2f}'.format(3.141592653589793)
>>> s
'Pi value is 003.14'
>>> s = 'Pi value is {:01.2f}'.format(3.141592653589793)
>>> s
'Pi value is 3.14'


Liens Site
round Python Doc
round() in Python doesn't seem to be rounding properly stackoverflow
How to convert 2D float numpy array to 2D int numpy array? stackoverflow
How to round up a complex number? stackoverflow
Using % and .format() for great good!

Card image cap

Hi, I am Ben.

I have developed this web site from scratch with Django to share with everyone my notes. If you have any ideas or suggestions to improve the site, let me know ! (you can contact me using the form in the welcome page). Thanks!

Did you find this content useful ?, If so, please consider donating a tip to the author(s). is visited by millions of people each year and it will help us to maintain our servers and create new contents.