2012-10-26 33 views
18

Python'da, bir tam sayıya en yakın katmamı sağlayan bir işlev var mı?Tam sayıları en yakın çoklu sayıya yuvarlama

round_down(19,10)=10 
round_down(19,5)=15 
round_down(10,10)=10 

Ben bilinçli bir yakın tabanına aşağı yuvarlama ile ilgili hiçbir şey SO bakıp bulundu. İlgili sorulara veya bayraklara bağlantı olarak göndermeden önce lütfen bunu aklınızda bulundurun.

+0

Yuvarlanacak bir şey bulursanız, sonuç ve orijinal değer eşit değilse, neden bunu kullanmıyorsunuz ve çıkartmıyorsunuz? –

+2

Bunu milyonlarca yol yapabilirdim. Tanımlarımla kodumu çöplüğe sokmaktan kaçınmak için bir Python işlevi istedim, ama bunu yapmak için hiçbir şey Python'a dahil olduğunu sanmıyorum ve şimdi biliyorum. IG'nin cevabı oldukça iyi görünüyor. –

+0

Python'da [5 ila 5 (veya başka bir sayı)] 'nın olası kopyası (https://stackoverflow.com/questions/2272149/round-to-5-or-other-number-in-python) –

cevap

44
def round_down(num, divisor): 
    return num - (num%divisor) 

In [2]: round_down(19,10) 
Out[2]: 10 

In [3]: round_down(19,5) 
Out[3]: 15 

In [4]: round_down(10,10) 
Out[4]: 10