[英]How to round to zero decimals if there is no decimal value with Jinja2?
[英]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.4
和0.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.