簡體   English   中英

我怎樣才能將一個小數點后一位的值四舍五入到小數點后兩位

[英]how can I round a value with 1 decimal to 2 decimals

我需要將值精確舍入為2個小數,但是當我使用round()時,如果值是0.4,則不起作用,但是我需要0.40。

round(0.4232323, 2) = 0.42
bad: round(0.4, 2) = 0.4

我該如何解決?

0.4和0.40在數學上是等效的。

如果要以兩位小數顯示它們,請使用{:.2f}格式:

>>> '{:.2f}'.format(0.4)
'0.40'
print("{0:.2f}".format(round(0.4232323, 2)))

如果將這些值表示為浮點數,則0.40.40之間沒有差異。 以不同的精度打印它們只是格式字符串的問題(根據其他兩個答案)。

但是,如果要使用小數,Python中有一個decimal模塊

>>> from decimal import Decimal
>>> a = Decimal("0.40")
>>> b = Decimal("0.4")
# They have equal values
>>> a == b
True 

# But maintain their precision
>>> a + 1
Decimal('1.40')

>>> b + 1
Decimal('1.4') 

>>> a - b
Decimal('0.00')

使用quantize方法將舍入到特定數量的地方。 例如:

>>> c = Decimal(0.4232323)
>>> c.quantize(Decimal("0.00"))
Decimal('0.42')
>>> str(c.quantize(Decimal("0.00")))
'0.42'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM