Se ottengo il numero 46 e voglio arrotondare al dieci più vicino. Come posso farlo in Python?Python - arrotondare fino al dieci più prossimo
46 va a 50.
Se ottengo il numero 46 e voglio arrotondare al dieci più vicino. Come posso farlo in Python?Python - arrotondare fino al dieci più prossimo
46 va a 50.
È possibile utilizzare math.ceil()
per arrotondare, e quindi moltiplicare per 10
import math
def roundup(x):
return int(math.ceil(x/10.0)) * 10
Per utilizzare solo fare
>>roundup(45)
50
Che non funziona sempre: Se 'x = 1000000000000000010' quindi' print (int (math.ceil (x/10.0)) * 10) 'output' 1000000000000000000'. – user2219896
Penso che sia perché stai andando oltre il limite int python – Parker
round
vuole un parametro negativo ndigits
!
>>> round(46,-1)
50
può risolvere il vostro caso.
Questo non arrotonda * su * anche se. Restituisce anche un 'float', che può o non può essere desiderabile (ma penso che sia degno di nota). – NPE
true, si arrotonda al più vicino ... su py3, restituisce un int però. – ch3ka
Si può facilmente inserire in int() se non si desidera un float. Grazie. Questo ha risolto il mio caso. –
questo sarà arrotondato per difetto in modo corretto così:
>>> n = 46
>>> rem = n % 10
>>> if rem < 5:
... n = int(n/10) * 10
... else:
... n = int((n + 10)/10) * 10
...
>>> 50
Il requisito è in particolare per arrotondare * su *. – NPE
più vicina * dieci * ('10') o il più vicino * decimo * (' 0.1')? Che cosa hai provato e qual è esattamente il problema? – jonrsharpe
cosa vuoi ottenere per '-46':' -50' o '-40'? – jfs
Che tipo di numeri? 'int's? 'Float's? Istanze 'Decimale'? –