Python 解析这些数据和舍入数字的建议

Python 解析这些数据和舍入数字的建议,python,rounding,Python,Rounding,我在一个文本文件中有一些数据,我使用正则表达式来解析数据 并将编号和索引存储在两个变量中。我想把数字四舍五入到相同的小数位,并将其写入一个新文件(索引为a、B、C) 这组数据都在小数点后3位 A 11000.233 B 4.000 C 14798.241 另一组数据位于小数点后2位 A 11000.23 B 4.00 C 14798.24 当我使用readlines()读取它们时,它们最初都是字符串格式 但是当我将第一组数据中的字符串转换为float,然后使用str(round(float(nu

我在一个文本文件中有一些数据,我使用正则表达式来解析数据 并将编号和索引存储在两个变量中。我想把数字四舍五入到相同的小数位,并将其写入一个新文件(索引为a、B、C)

这组数据都在小数点后3位

A 11000.233

B 4.000

C 14798.241

另一组数据位于小数点后2位

A 11000.23

B 4.00

C 14798.24

当我使用readlines()读取它们时,它们最初都是字符串格式

但是当我将第一组数据中的字符串转换为float,然后使用str(round(float(number),2))将其从3位小数舍入到2位小数时

我遇到了两个问题

  • 它将为A(11000.233)和C(14798.241)提供一个值错误

    我知道这是由11000.23中的引起的。但是我不知道怎么处理它。有谁能给我一些关于如何处理它的建议吗

  • 对于B,当我尝试用相同的方法转换数字时,它给我4.0而不是4.00。是否有任何方法可以输出4.00而不是4.0

  • ,“
    处拆分字符串并使用
    ”。join()

    您可以使用字符串格式获取
    4.00

    In [36]: strs="4.00"
    
    In [37]: float(strs)
    Out[37]: 4.0
    
    In [39]: format(float(strs),".2f")
    Out[39]: '4.00'
    
    In [40]: "{0:.2f}".format(float(strs))
    Out[40]: '4.00'
    
  • 在使用
    float()
    之前,使用string
    replace()
    方法删除

  • 使用string
    format()
    方法更改浮点的字符串表示形式

    format(4.0, ".2f")
    
  • float("1,123.4567".replace(",", ""))
    
    format(4.0, ".2f")