如何让Python使用raw_input值作为固定点数?

elo*_*k37 3 python python-2.7

我正在制作一个单位转换器来练习.目前,我已经定义了一个函数来确定要进行的转换类型(距离,时间,质量等).

然后它会为该类型调用正确的转换器,询问您要转换的内容,转换的内容以及转换的值.

def mass_converter():
    convert_from = raw_input('What unit are you converting from? ')
    convert_to = raw_input('What unit are you converting to? ')
    value = raw_input('How many of those do you have? ')

    if convert_from == "pounds" and convert_to == "kilograms":
        answer = float(value) * 0.453592
        print "That many pounds is %d kilograms." % answer
    elif convert_from == "kilograms" and convert_to == "pounds":
        answer = float(value) * 2.20462
        print "That many kilograms is %d pounds." % answer
    else:
        print "You have not selected a valid unit; please try again."
        mass_converter()
Run Code Online (Sandbox Code Playgroud)

目前,如果我将10磅转换成公斤,它告诉我答案是4公斤.它似乎正在削减我的小数.显然int(value)会做同样的事情.我可以使用什么来保持用户输入的确切值?

mgi*_*son 7

这里的问题是你%d在字符串格式中使用格式修饰符,它将你的答案转换为整数.%f改为使用(甚至%s).