2017-10-13 1019 views
-2

我需要返回總是有2位小數的數字(不是字符串!),無論輸入什麼數字。例如:如何顯示小數點後兩位的數字

  • 86回報86.00
  • 3.12345回報3.12
  • 2.0回報2.00

的問題是,如果我使用Python的十進制模塊,它返回Decimal('#'),而不是僅僅# (我只想要號碼)。如果我改用"%.2f" % #,它會將該數字作爲字符串返回,這不是我想要的,因爲我無法對Python中的字符串進行任何數學運算。

+1

不能返回這樣一個數字。 *表示*與*值*混淆。 '86.0'是一個浮點值,它將*從不*爲小數點後兩個零的數字。 –

+0

相反,您可以控制數字如何被打印*,因此您可以控制在需要顯示數字時如何將它們轉換爲字符串。 –

回答

-1
x = 3.14159 
round(x, 2) 

給出3.14

+1

舍入爲您提供了另一個浮動對象。整數不會顯示2位小數,而浮點數*不是每個可能實數*的精確表示,這意味着舍入到兩位數*仍然可以產生使用更多數字*的浮點數。 –

+0

是的,但沒有精確到兩位小數的類型。確切的唯一方法是使用一個移位兩位小數的整數,但是沒有一個數學方法可以在沒有爲這個類編寫自定義的__mul__和__div__方法的情況下工作,所以這是最簡單的方法。達成要求 –

+0

OP要求輸入另一個號碼。當然,一個浮點數仍然會使用更多的數字,這是一個浮點數,它永遠不會是確切的,但它將精確到OP所使用的精度。 –

相關問題