如何获取用户输入的十进制格式

时间:2017-08-15 20:19:37

标签: python-3.x format decimal

您好我无法获取数字用户输入并将变量格式化为十进制,如此。

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))

2 个答案:

答案 0 :(得分:1)

首先需要导入十进制。通过输入以下内容来执行此操作:

from decimal import Decimal

然后,你可以简单地使用:

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

十进制只是另一种类型的变量,所以你以与int(input())或str(input())

相同的方式使用它

希望这会有所帮助。 :)

答案 1 :(得分:0)

列出您尝试过的每种方法所遇到的问题类型会很有帮助。

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

请记住,输入法(在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)