Python 将浮点转换为字符串时的感知损失

Python 将浮点转换为字符串时的感知损失,python,Python,假设一个客户想知道一个产品的价格,所以我执行了一个数据库查询,得到的值95为int,表示以美分为单位的值。现在我想用欧元告诉客户价格,所以我这样做: print("Price: " + format(price/100, ".2f") + "EUR") 我得到的是: Price: 0.00EUR 为什么以及如何修复此问题 谢谢您需要将输出设置为浮点数。尝试除以100.0您必须在字符串格式之前执行price=floatwhatever来强制转换为float。如果分子或分母是一个

假设一个客户想知道一个产品的价格,所以我执行了一个数据库查询,得到的值95为int,表示以美分为单位的值。现在我想用欧元告诉客户价格,所以我这样做:

    print("Price: " + format(price/100, ".2f") + "EUR")
我得到的是:

    Price: 0.00EUR
为什么以及如何修复此问题


谢谢

您需要将输出设置为浮点数。尝试除以100.0

您必须在字符串格式之前执行price=floatwhatever来强制转换为float。如果分子或分母是一个浮点数,那么结果也是。如果两者都是整数,则结果将是整数。

这是因为price和100都是整数-如果您对整数执行任何操作,结果将是整数。当您执行price/100时,您将得到0.95的整数,即0,然后格式0.2f为0.00。您需要做的是在对其执行任何操作之前将价格转换为浮点值,如formatfloatprice/100.2f,或者您可以只除以浮点值100.0,如formatprice/100.0.2f来解决此问题。

此答案意味着您可以执行price=floatprice/100,这是不正确的。否。答案意味着当他得到价格时,可以在字符串格式之前将价格转换为浮动。但我还是编辑了答案。现在转换你的浮动变量price/100的结果是整数。例如,printPrice:+formatprice/100.0,.2f+EUR。在货币方面,最好使用十进制: