我怎麼能這樣整數整數?我研究過round()
函數,但它沒有我想要的。如何將整數舍入到最接近的20?
5 > 0
9 > 0
11 > 20
14 > 20
19 > 20
20 > 40
29 > 40
我怎麼能這樣整數整數?我研究過round()
函數,但它沒有我想要的。如何將整數舍入到最接近的20?
5 > 0
9 > 0
11 > 20
14 > 20
19 > 20
20 > 40
29 > 40
定義拉姆達:
>>> nearest_20 = lambda x: (1 + (x-1)/20)*20 if x % 20 >= 10 else (x/20)*20
>>> nearest_20(5)
0
>>> nearest_20(0)
0
>>> nearest_20(20)
20
>>> nearest_20(11)
20
有點矯枉過正......但我喜歡它! – Barranka
請勿使用lambdas來定義函數。它比常規函數定義沒有任何優勢。這讓Guido哭了。 –
@MarkRansom除了讓Guido哭泣,它有什麼缺點? –
如果x
是要四捨五入的整數,這會給你在原來的問題要求正確舍入中途:
round(int((x + 9)/20) * 20)
假設你四捨五入整數精確到20:
最近第二十?或二十的最接近的倍數?二十分之一是0.05。 – recursive
@recursive Nearest 20th –
我認爲答案是將浮點數除以20,然後將結果乘以_that_乘以20. :-)'round(x/20)* 20' – mgilson