除了我自己的編碼外,是否有任何內置的Python函數只能將整數向下舍入呢?我在尋找的東西具有類似功能的round()
功能,但會,比方說,評估只有四捨五入的Python函數?
myFunction(3900, -3)
爲3000
,不4000
。
而且,如果沒有內置符合該描述的函數,您對我自己的編碼有任何建議嗎?
除了我自己的編碼外,是否有任何內置的Python函數只能將整數向下舍入呢?我在尋找的東西具有類似功能的round()
功能,但會,比方說,評估只有四捨五入的Python函數?
myFunction(3900, -3)
爲3000
,不4000
。
而且,如果沒有內置符合該描述的函數,您對我自己的編碼有任何建議嗎?
你可以使用這個簡單的技巧:減去五十年/百/千/等。基於所需的精度並使用內建的round()
。
這會給你這樣的事情:
>>> round_down = lambda x, prec: round(x - 5 * (10 ** (prec - 1)) + 1, -prec)
>>> round_down(2900, 3)
2000
>>> round_down(290, 2)
200
注意,從其減去的時候,你必須要加1要傳遞給round
數,否則在你打電話
round_down(3000, 3)
你實際上可以調用
round(2500, -3)
其會評估爲2000
。
您也可以使用round
,使得它總是將圓下來,避免使用lambda
一個小竅門減去之前。
def fun(num,spots):
return (int(round(num - 0.5*10**(-spots), spots)))
輸出:
>>>fun(3900, -3)
3000
>>>fun(32948, -2)
32900
>>>fun(3001, -3)
3000
import math
def foo(a,b):
return (math.floor(a/(10**b)))*(10**b)
什麼是 「-3」 是什麼意思? – tnknepp
在循環函數中,它循環到小數點後的許多數字。 – TigerhawkT3
它提供了round()函數將四捨五入的地方值。正整數超過小數點,負整數超過小數點。在這種情況下,-3表示舍入到最接近的千位數。 –