Python Language Arrondi: rond, sol, plafond, tronc


Exemple

Outre la fonction round intégrée, le module math fournit les fonctions floor , ceil et trunc .

x = 1.55
y = -1.55

# round to the nearest integer
round(x)       #  2
round(y)       # -2

# the second argument gives how many decimal places to round to (defaults to 0)
round(x, 1)    #  1.6
round(y, 1)    # -1.6

# math is a module so import it first, then use it.
import math

# get the largest integer less than x
math.floor(x)  #  1
math.floor(y)  # -2

# get the smallest integer greater than x
math.ceil(x)   #  2
math.ceil(y)   # -1

# drop fractional part of x
math.trunc(x)  #  1, equivalent to math.floor for positive numbers
math.trunc(y)  # -1, equivalent to math.ceil for negative numbers
Python 2.x 2.7

floor , ceil , trunc et round retournent toujours un float .

round(1.3)  # 1.0

round casse toujours les liens à partir de zéro.

round(0.5)  # 1.0
round(1.5)  # 2.0
Python 3.x 3.0

floor , ceil et trunc renvoient toujours une valeur Integral , alors que round renvoie une valeur Integral si elle est appelée avec un argument.

round(1.3)      # 1
round(1.33, 1)  # 1.3

round casse les liens vers le nombre pair le plus proche. Cela corrige le biais vers de plus grands nombres lors de l'exécution d'un grand nombre de calculs.

round(0.5)  # 0
round(1.5)  # 2

Attention!

Comme pour toute représentation en virgule flottante, certaines fractions ne peuvent pas être représentées exactement . Cela peut entraîner un comportement d'arrondi inattendu.

round(2.675, 2)  # 2.67, not 2.68!

Avertissement concernant la division floor, trunc et entier des nombres négatifs

Python (et C ++ et Java) arrondit à zéro pour les nombres négatifs. Considérer:

>>> math.floor(-1.7)
-2.0
>>> -5 // 2
-3