2015-10-21 47 views
2

獲得所需的精度的浮點數,例如,我想從e得到一個浮點數(2.71從2.718281828 ...),有什麼函數可以使用嗎?我已經嘗試了round(),math.floor()和Decimal(1).exp()與getcontext()。prec = 1,但他們都沒有給我我想要的(round()給我2.72,math.floor ()2和十進制(1).exp也2.72)我不想收起浮動。如何使用python

在此先感謝。

回答

5
round(x - 0.005, 2) 
# => 2.71 
math.floor(x * 100)/100 
# => 2.71 
+0

這是輝煌的。謝謝 – Emma

+1

注意:與所提供的所有解決方案一樣,這是按照小數位數而不是數位數進行的。可能適用於OP,但值得注意。 – ShadowRanger

0

可以格式化字符串與一個額外的數字,刪除它,然後轉換回float

>>> float('{:.3f}'.format(2.718)[:-1]) 
2.71 
+0

aka'len(str(bool(x)))== 4' – Zelta

4
>>> from decimal import Decimal, ROUND_DOWN 
>>> from math import e 
>>> print Decimal(e).quantize(Decimal('.01'), rounding=ROUND_DOWN) 
2.71