Rotunjirea numerelor întregi la cel mai apropiat multiplu (Programare, Python)

Pisica neamuzantă a intrebat.

Există o funcție în Python care îmi permite să rotunjesc la cel mai apropiat multiplu al unui întreg?

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

M-am uitat conștiincios la SO și nu am găsit nimic legat de rotunjire în jos la cea mai apropiată bază. Vă rugăm să țineți cont de acest lucru înainte de a posta linkuri către întrebări conexe sau de a le marca ca fiind duplicate.

Comentarii

  • Dacă ați găsit ceva pentru a rotunji în sus, de ce să nu folosiți acel lucru și să scădeți unu dacă rezultatul și valoarea inițială sunt inegale? –  > Por Jonas Schäfer.
  • Aș fi putut să o fac într-un milion de moduri. Am vrut o funcție Python pentru a evita să-mi împovărez codul cu definiții, dar cred că nimic care să facă acest lucru nu este inclus în Python și acum știu. Răspunsul lui IG pare totuși destul de bun. –  > Por Pisica nefericită.
  • Posibil duplicat al funcției Round to 5 (sau alt număr) în python – –  > Por Cristian Ciupitu.
2 răspunsuri
inspectorG4dget
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

archeralex

Eu am ajuns să fac următoarele atunci când mă aflam în aceeași situație, folosindu-mă de floor funcției. În cazul meu încercam să rotunjesc numerele la cel mai apropiat 1000.

from math import floor


def round_down(num, divisor):
    return floor(num / divisor) * divisor

S-ar putea face un lucru similar cu ceil dacă ați dori să definiți și o funcție corespunzătoare de rotunjire întotdeauna în sus(?)

Comentarii

  • Acest lucru funcționează, dar implică mult mai mult, și o operațiune mai complexă + import … apoi anslerul axepted –  > Por d.raev.

Tags: