2016-02-05 37 views
-1

請告訴我如何在Python中整理數字。在Python中整理數字(如1.23到2)

如果我有1.47,如何四捨五入到2? 或者如果我有10.13,如何將它舍入到11?

答案與round(round(1.47, 1))正確,但有沒有另一種方法來收集這些數字?

+1

http://stackoverflow.com/questions/2356501/how-do-you-round-up-a-number-in-python – tinySandy

回答

4

math模塊中有一個函數叫做ceil

>>> import math 
>>> print math.ceil(1.47) 
2.0 

如果你想要一個整數,

>>> import math 
>>> print int(math.ceil(1.47)) 
2 
+0

謝謝!我懂了。 – user3214767

+0

http://stackoverflow.com/questions/2356501/how-do-you-round-up-a-number-in-python – tinySandy

0

你想使用math天花板功能,即ceil

import math 
print math.ceil(1.47) 

將產生2.0

+0

可能的重複https://stackoverflow.com/a/35215406/5827958 – zondo

2

顯然使用math.ceil,但這裏有一個有趣的交替ative反正:

>>> [-(-x//1) for x in 1.47, 10.13, 2.0] 
[2.0, 11.0, 2.0] 

而且更短/滑稽之一:

>>> [0--x//1 for x in 1.47, 10.13, 2.0] 
[2.0, 11.0, 2.0] 

或者--0-- x//1,見下面@ MarkDickinson的評論。

應用int(...)如果你想要一個int,我會保留這些,因爲它們是爲了展示「浮點數的整數除法」,並讓它看到發生了什麼。

+0

換行結果在int中,似乎是OP想要的 – tinySandy

+0

謝謝,我現在提到它。 –

+0

我喜歡把第二個例子寫成'[--0-- x // 1 for x in 1.47,10.13,2.0]':'--0 - '是「天花板分割運算符」,它將後續改爲上限劃分的地板師。 (是的,在技術上'0 - '的工作原理是一樣的,但' - 0 - '看起來好多了。) –