Wenn ich die Nummer 46 bekomme und ich auf die nächsten zehn runden möchte. Wie kann ich das in Python machen?Python - bis auf die nächsten zehn Runden
46 geht bis 50.
Wenn ich die Nummer 46 bekomme und ich auf die nächsten zehn runden möchte. Wie kann ich das in Python machen?Python - bis auf die nächsten zehn Runden
46 geht bis 50.
Sie können math.ceil()
verwenden abzurunden, und dann multiplizieren mit 10
import math
def roundup(x):
return int(math.ceil(x/10.0)) * 10
Um nur tun
>>roundup(45)
50
Das funktioniert nicht immer: Wenn 'x = 1000000000000000010' dann' print (int (math.ceil (x/10.0)) * 10) 'gibt' 1000000000000000000' aus. – user2219896
Ich denke, das liegt daran, dass Sie das Python-Int-Limit überschreiten – Parker
round
nimmt negativ ndigits
Parameter!
>>> round(46,-1)
50
kann Ihren Fall lösen.
Dies wird nicht abgerundet * obwohl. Es gibt auch einen "float" zurück, der vielleicht wünschenswert ist (aber ich denke, es ist erwähnenswert). – NPE
wahr, es rundet auf den nächsten ... auf py3, gibt es aber ein Int. – ch3ka
Sie können es einfach in int() setzen, wenn Sie keinen Float möchten. Vielen Dank. Das hat meinen Fall gelöst. –
verwenden korrekt als auch Das wird abrunden:
>>> n = 46
>>> rem = n % 10
>>> if rem < 5:
... n = int(n/10) * 10
... else:
... n = int((n + 10)/10) * 10
...
>>> 50
Die Anforderung ist speziell zu runden * up *. – NPE
Nächster * zehn * ('10') oder nächste * zehnte * (' 0.1')? Was hast du probiert und was genau ist das Problem damit? – jonrsharpe
was willst du für '-46':' -50' oder '-40' bekommen? – jfs
Welche Art von Nummern? 'Int's? 'Float's? 'Dezimale' Instanzen? –