用户输入后无法返回小数
Trouble returning decimal after input from user
我正在研究在函数中使用变量的多种不同方法,但有一种方法我在网上搜索了大约一个小时后无法弄清楚。我只希望用户能够输入一个像“23.45”这样的十进制数字,然后程序打印出这个确切的数字。我尝试了多种不同的方法,但总是以错误或整数告终。我在 PowerShell 中 运行 这个。这是一段代码:
def person(age, gender):
print "You are %d years old." % age
print "You are a %s" % gender
how_old = eval(raw_input("How old are you? "))
age = float(how_old)
person(age, "Male")
改变
print "You are %d years old." % age
到
print "You are %g years old." % age
顺便说一下,那里不需要eval
,float
转换就足够了。
如果你想准确显示用户输入的内容,那么使用 %s 与你执行第二个 print 语句的方式相同,然后删除第 6 行的 float 转换。使用 %例如,如果有人输入 21.345676543,g 或 %d 将导致它舍入到更少的小数位。当然,我想不出任何可能的原因,有人会知道他们的年龄那么详细,但你永远不知道!
我再次抱怨不需要评估。
我正在研究在函数中使用变量的多种不同方法,但有一种方法我在网上搜索了大约一个小时后无法弄清楚。我只希望用户能够输入一个像“23.45”这样的十进制数字,然后程序打印出这个确切的数字。我尝试了多种不同的方法,但总是以错误或整数告终。我在 PowerShell 中 运行 这个。这是一段代码:
def person(age, gender):
print "You are %d years old." % age
print "You are a %s" % gender
how_old = eval(raw_input("How old are you? "))
age = float(how_old)
person(age, "Male")
改变
print "You are %d years old." % age
到
print "You are %g years old." % age
顺便说一下,那里不需要eval
,float
转换就足够了。
如果你想准确显示用户输入的内容,那么使用 %s 与你执行第二个 print 语句的方式相同,然后删除第 6 行的 float 转换。使用 %例如,如果有人输入 21.345676543,g 或 %d 将导致它舍入到更少的小数位。当然,我想不出任何可能的原因,有人会知道他们的年龄那么详细,但你永远不知道!
我再次抱怨不需要评估。