为什么%d截断1.5但%s正确打印数字?

时间:2017-03-03 11:59:51

标签: python

我在codecademy上学习Python课程,我应该在一对词典中打印每个项目,然后是它们的价格和库存量。这是我写的代码:

prices = { 
    "banana" : 4,
    "apple"  : 2,
    "orange" : 1.5,
    "pear"   : 3,
}
stock = {
    "banana" : 6,
    "apple"  : 0,
    "orange" : 32,
    "pear"   : 15,
}

for fruit in prices:
    print fruit
    print "price: %d" % prices[fruit]
    print "stock: %d" % stock[fruit]

除橙色价格外,所有产品的输出都是正确的。使用%d,它打印值1.当我用%s替换%d时,打印正确的值1.5,但我不明白为什么%d不能用于十进制值。 1.5是一个数字,所以我不应该使用%d而不是%s?

2 个答案:

答案 0 :(得分:2)

%d转换为十进制,没有浮动部分

%s保持浮动并将其完全显示在屏幕上

如果要打印浮动,请使用%f

答案 1 :(得分:1)

因为%d是像整数这样的数字格式,你应该使用%f而不是^^这是浮点数。