圓形地板 ceil trunc

除了內建的 round 功能外,math 模組還提供了 floorceiltrunc 功能。

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

floorceiltruncround 總是返回 float

round(1.3)  # 1.0

round 總是打破零關係。

round(0.5)  # 1.0
round(1.5)  # 2.0

Python 3.x >= 3.0

floorceiltrunc 總是返回 Integral 值,而 round 返回 Integral 值,如果用一個引數呼叫。

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

round 打破了最接近偶數的關係。在執行大量計算時,這會將偏差校正為較大的數字。

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

警告!

與任何浮點表示一樣,某些分數無法準確表示。這可能會導致一些意外的舍入行為。

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

關於負數的地板,截斷和整數除法的警告

對於負數,Python(和 C++和 Java)從零開始。考慮:

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