Jeśli zdobędę numer 46 i chcę zaokrąglić do najbliższej dziesiątki. Jak mogę to zrobić w pythonie?Python - zaokrąglić do najbliższej dziesiątki
46 idzie do 50.
Jeśli zdobędę numer 46 i chcę zaokrąglić do najbliższej dziesiątki. Jak mogę to zrobić w pythonie?Python - zaokrąglić do najbliższej dziesiątki
46 idzie do 50.
Można użyć math.ceil()
zaokrąglić w górę, a następnie pomnożyć przez 10
import math
def roundup(x):
return int(math.ceil(x/10.0)) * 10
Aby użyć tylko zrobić
>>roundup(45)
50
To nie działa zawsze: Jeśli 'x = 1000000000000000010' to' print (int (math.ceil (x/10.0)) * 10) 'wyjścia' 1000000000000000000'. – user2219896
Myślę, że to dlatego, że przechodzisz obok limitu python int – Parker
round
bierze negatywny ndigits
parametr!
>>> round(46,-1)
50
może rozwiązać twoją sprawę.
To nie zaokrągla * w górę * chociaż. Zwraca również wartość 'float', która może być pożądana lub nie (ale myślę, że warto o tym wspomnieć). – NPE
prawda, zaokrągla do najbliższego ... na py3, ale zwraca int. – ch3ka
Możesz z łatwością umieścić go wewnątrz int(), jeśli nie chcesz pływaka. Dzięki. To rozwiązało moją sprawę. –
To zaokrąglić w dół prawidłowo, a także:
>>> n = 46
>>> rem = n % 10
>>> if rem < 5:
... n = int(n/10) * 10
... else:
... n = int((n + 10)/10) * 10
...
>>> 50
Wymóg jest specjalnie do round * up *. – NPE
Najbliżej * dziesięć * ("10") lub najbliższa * dziesiąta * ("0,1")? Co próbowaliście i jaki jest dokładnie problem? – jonrsharpe
co chcesz zdobyć dla '-46':' -50' lub '-40'? – jfs
Jakiego rodzaju numery? 'int's? 'float's? Instancje "dziesiętne"? –