我需要將值舍入爲2位小數,但是當我使用round()時,它不起作用,如果值爲0.4,但我需要0.40。如何將小數點後一位的值舍入爲2位小數
round(0.4232323, 2) = 0.42
bad: round(0.4, 2) = 0.4
我該如何解決這個問題?
我需要將值舍入爲2位小數,但是當我使用round()時,它不起作用,如果值爲0.4,但我需要0.40。如何將小數點後一位的值舍入爲2位小數
round(0.4232323, 2) = 0.42
bad: round(0.4, 2) = 0.4
我該如何解決這個問題?
print("{0:.2f}".format(round(0.4232323, 2)))
如果您代表這些值作爲花車再有就是0.4
和0.40
之間沒有什麼區別。以不同的精度打印它們只是格式化字符串的問題(根據其他兩個答案)。
但是,如果要使用小數,則Python中有decimal
module。
>>> 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'
你是什麼意思'需要輪'?你是指當你打印到屏幕或某些輸出文件? – darthbith
爲什麼不使用'decimal'? – Joe
.4和.40是完全一樣的數字。 –