2017-08-15 39 views
0

嗨我無法獲得數字用戶輸入並將變量格式化爲像這樣的小數。如何獲得用戶輸入十進制格式

usrIn = Decimal input('How much money do you have in your account? ') 
print (usrIn) 

usrIn = input('How much money do you have in your account? ') 
usrIn = Decimal('{0:0.5f}'.format(usrIn)) 
print (usrIn) 

usrIn = input('How much money do you have in your account? ') 
print (usrIn) 
accBalNZD = Decimal('{0:0.5f}'.format(usrIn)) 

我也不能只分配變量的數量和格式化由於某種原因,它與其他的東西。

prevAmtNZD = Decimal('{0:0.5f}'.format(0.0000000)) 
print (prevAmtNZD) 

但是,這工作有困難實施請幫助。

exRandUSD = Decimal('{0:0.5f}'.format(random.random()* (0.780 - 0.720) + 0.720)) 
+0

你的'()在第一個小數位在哪裏? 'value = Decimal(input('...'))' –

回答

0

如果列出您嘗試過的每種方法都看到的問題類型會很有幫助。請注意,輸入法(在Python 3中)返回一個字符串(嘗試用repr打印出來)。這就是爲什麼你的第二/第三代碼片段失敗。如果將該字符串轉換爲浮點數,它將起作用:

from decimal import Decimal 
usrIn = input('How much money do you have in your account? ') 
print(repr(usrIn)) 
usrIn = Decimal('{0:0.5f}'.format(float(usrIn))) 
print (usrIn) 
+0

謝謝你有時候錯過了簡單的東西 –

1

您首先需要導入Decimal。通過鍵入操作:

from decimal import Decimal 

然後,您可以簡單地使用:

UserIn = Decimal(input(".........................")) 

小數只不過是另一種類型的變量,所以你使用它以同樣的方式爲INT(輸入())或str(input())

希望這有助於。 :)

+0

fyi:你絕對不需要將input()的返回值轉換爲字符串,它是已經是一個字符串(在Python 3中)。 –