在python中,将str格式化为浮点,并从1个十进制增加到2个十进制

2024-09-26 22:08:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一份价格清单,小数点后1位,采用字符串格式

我想将每个项目转换成一个浮点,将它们更改为两位小数,并将它们附加到一个新列表中

price = ["9.8", "8.8" ,"10.9", "11.8", "13.9", "18.9"]

newprice = []

我试过这个代码,但不起作用

for i in range(len(price)):
      price2= float(price[i])
      price= '{0:.3g}'.format(price2)
      newprice.append(price)

大多数在线说明教我如何减少到小数点后两位,而不是增加到小数点后两位


Tags: 项目字符串代码in列表for格式range
3条回答

这里有几个问题:

  • 您将price(列表)替换为price(字符串),因此循环在一次迭代后失败
  • 您希望f格式说明符添加尾随零

您还可以做一些改进,包括不使用列表索引、使用更现代的Pythonic f字符串,以及跳过临时变量price2

for i in range(len(price)):
    newprice.append(f"{float(price[i]):.2f}")

也可以使用简单的列表表达式:

newprice = [f"{float(n):.2f}" for n in price]

[float(i) for i in string_prices]是一个简单的列表理解,它将字符串转换为浮点数

浮点的小数位数纯粹用于显示一个值,因此在语言中从1到2小数的转换不是一件事,因为添加尾随的零不是一个不同的值

string_prices = ["9.8", "8.8" ,"10.9", "11.8", "13.9", "18.9"]

prices = [float(i) for i in string_prices]

for price in prices:
    print(f"{price:.2f}")

首先,您需要将字符串转换为float,您可以使用方法^{} 然后使用方法^{}将格式添加到数字中

您可以尝试以下代码:

price = ["9.8", "8.8" ,"10.9", "11.8", "13.9", "18.9"]

price_f = []

for i in price:
    new_price_float=format(float(i),'.2f')
    price_f.append(new_price_float)

print(price_f)

相关问题 更多 >

    热门问题