我有一個python十進制(貨幣數量),我想四捨五入到小數點後兩位。我嘗試使用常規round()函數來執行此操作。不幸的是,這將返回一個浮動,這使得它不可靠繼續:如何將Python十進制數舍入到2位小數?
>>> from decimal import Decimal
>>> a = Decimal('1.23456789')
>>> type(round(a, 2))
<type 'float'>
小數模塊中,我看到有關幾件事情要四捨五入:
- ROUND_05UP
- ROUND_CEILING
- ROUND_DOWN
- ROUND_FLOOR
- ROUND_HALF_DOWN
- ROUND_HALF_EVEN
- ROUND_HALF_UP
- ROUND_UP
- 圓角
我認爲這些都不實際上給我想要什麼,但(或我錯了嗎?)。
所以我的問題:是否有人知道我如何可靠地將Python Decimal舍入到2個小數位,以便我有一個Decimal繼續?歡迎所有提示!
不可能將其使用整數(美分而不是美元)更有意義?這也會更快。 –
設置十進制數的精度:'decimal.getcontext()。prec = 2'。 – ooga
@ooga:處理有效位數,而不是小數位數,因此是不合適的(它會將'12345678'變成'1.2E + 7',但只能在計算後進行計算,而不是在定義之後) 。 –