从用户输入后无法返回小数

时间:2015-05-27 02:05:52

标签: python powershell floating-point decimal

我正在研究在函数中使用变量的多种不同方法,但有一种方法我在大约一小时的网络搜索后无法弄清楚。我只是希望用户能够输入一个十进制数字,如“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")

2 个答案:

答案 0 :(得分:0)

更改

print "You are %d years old." % age

print "You are %g years old." % age

顺便说一下,eval没有必要,float转换就足够了。

答案 1 :(得分:0)

如果要显示完全用户输入的内容,请使用%s,方法与第二个print语句相同,然后删除第6行的浮动转换。使用%g或%d将例如,如果某人在21.345676543中键入,则会将其舍入到较少的小数位。当然,我无法想出任何可能的原因,有人会知道他们的年龄,但你永远不知道!

我第二次说不需要eval。