我正在制作一个单位转换器来练习。目前,我已经定义了一个函数来确定要进行的转换类型(距离,时间,质量等)。
然后它会为该类型调用正确的转换器,询问您要转换的内容,转换的内容以及转换的价值。
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()
目前,如果我将10磅转换成公斤,它告诉我答案是4公斤。它似乎正在削减我的小数。显然int(value)会做同样的事情。我可以使用什么来保持用户输入的确切值?
答案 0 :(得分:7)
这里的问题是你在字符串格式中使用%d
格式修饰符,它将你的答案转换为整数。请改用%f
(甚至%s
)。
答案 1 :(得分:2)
您可以使用%f代替%d。 %d将数字格式化为浮点数,而不是整数。或者你可以使用
print "That many kilograms is {} pounds.".format(answer)