Comment arrondir un nombre décimal en python ?

03 juin 2014    /    Viewed: 101459    /    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)
3

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

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

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

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

Convertir un nombre réel en entier

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

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

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

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
(2.1+3.5j)

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'

Références

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
numpy.ndarray.astype docs.scipy.org
Using % and .format() for great good! pyformat.info


Card image cap
profile-image
Daidalos

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!