2014-07-06 60 views
0

我一直在尋找一個函數,給定一個浮點數,將返回浮點數的整數或四捨五入到最接近的整數。模塊中是否有內置或可用的東西?是否有「小區或樓層」功能?

下面的代碼不會訣竅,但我避免重新發明輪子。

import math 

def realround(number): 
    _, d = divmod(number, 1) 
    if d > 0.5: 
     return int(math.ceil(number)) 
    else: 
     return int(math.floor(number)) 

print(realround(12.3)) 
print(realround(14.5)) 
print(realround(15.8)) 
+3

https://www.google.co.uk/search?q=python%20round –

+0

@OliCharlesworth:就像你希望從我的代碼想象,我已經看了一段時間這一點。因爲我寫過一個執行操作的函數,所以我很驚訝沒有內建Pffff,因爲有人問一個提供適當代碼的問題真的是[審查](我並不是暗示你是低調的,我只是生氣由機制) – WoJ

回答

0

這就是所謂的round

print(round(12.3)) 
print(round(14.5)) 
print(round(15.8)) 

rounds to even numbers on .5,雖然。

+0

我剛剛查找了python文檔,因爲我認爲python使用了循環到,但它似乎沒有:https://docs.python.org/2/library/functions.html#round – Axel

+0

@Axel:它在Python 3中完成,這是一個非常可怕,微妙的重大改變。 (好吧,它也在Python 3中用一個參數調用時返回一個'int')。=( – Ryan

+0

剛纔看到了,我很高興我們沒有選擇python ... ;-) – Axel

-3

將該值轉換爲int,並將decimel點右側的值消失(截斷)。

print(int(12.3)) 
print(int(14.5)) 
print(int(15.8)) 
+0

我不想簡單地截斷,但使用(現在我知道)'圓' – WoJ