獲得所需的精度的浮點數,例如,我想從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
在此先感謝。
獲得所需的精度的浮點數,例如,我想從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
在此先感謝。
round(x - 0.005, 2)
# => 2.71
math.floor(x * 100)/100
# => 2.71
可以格式化字符串與一個額外的數字,刪除它,然後轉換回float
:
>>> float('{:.3f}'.format(2.718)[:-1])
2.71
aka'len(str(bool(x)))== 4' – Zelta
>>> from decimal import Decimal, ROUND_DOWN
>>> from math import e
>>> print Decimal(e).quantize(Decimal('.01'), rounding=ROUND_DOWN)
2.71
這是輝煌的。謝謝 – Emma
注意:與所提供的所有解決方案一樣,這是按照小數位數而不是數位數進行的。可能適用於OP,但值得注意。 – ShadowRanger