我需要返回總是有2位小數的數字(不是字符串!),無論輸入什麼數字。例如:如何顯示小數點後兩位的數字
86
回報86.00
3.12345
回報3.12
2.0
回報2.00
的問題是,如果我使用Python的十進制模塊,它返回Decimal('#')
,而不是僅僅#
(我只想要號碼)。如果我改用"%.2f" % #
,它會將該數字作爲字符串返回,這不是我想要的,因爲我無法對Python中的字符串進行任何數學運算。
我需要返回總是有2位小數的數字(不是字符串!),無論輸入什麼數字。例如:如何顯示小數點後兩位的數字
86
回報86.00
3.12345
回報3.12
2.0
回報2.00
的問題是,如果我使用Python的十進制模塊,它返回Decimal('#')
,而不是僅僅#
(我只想要號碼)。如果我改用"%.2f" % #
,它會將該數字作爲字符串返回,這不是我想要的,因爲我無法對Python中的字符串進行任何數學運算。
x = 3.14159
round(x, 2)
給出3.14
舍入爲您提供了另一個浮動對象。整數不會顯示2位小數,而浮點數*不是每個可能實數*的精確表示,這意味着舍入到兩位數*仍然可以產生使用更多數字*的浮點數。 –
是的,但沒有精確到兩位小數的類型。確切的唯一方法是使用一個移位兩位小數的整數,但是沒有一個數學方法可以在沒有爲這個類編寫自定義的__mul__和__div__方法的情況下工作,所以這是最簡單的方法。達成要求 –
OP要求輸入另一個號碼。當然,一個浮點數仍然會使用更多的數字,這是一個浮點數,它永遠不會是確切的,但它將精確到OP所使用的精度。 –
不能返回這樣一個數字。 *表示*與*值*混淆。 '86.0'是一個浮點值,它將*從不*爲小數點後兩個零的數字。 –
相反,您可以控制數字如何被打印*,因此您可以控制在需要顯示數字時如何將它們轉換爲字符串。 –