Skip to main content
 首页 » 编程设计

python之为浮点值保持相同的格式

2025年05月04日11webabcd

我有一个 python 程序,它使用以下正则表达式读取浮点值

 (-?\d+\.\d+) 

一旦我使用 float(match.group(1)) 提取值,我就会得到实际的 float 。但是,我无法区分数字是 1.2345678 还是 1.234 还是 1.2340000。

我面临的问题是再次打印出浮点值,格式完全相同。一个简单的解决方案是在仍然是字符串时“拆分并计算”浮点值,例如在小数点拆分,并计算整数部分长度和小数部分长度,然后创建格式化程序为

print "%"+str(total_len)+"."+str(fractional_len)+"f" % value 

但也许您知道实现相同结果的标准方法?

请您参考如下方法:

如果您想保持固定精度,请避免使用 float 并改用 Decimal:

>>> from decimal import Decimal 
>>> d = Decimal('-1.2345') 
>>> str(d) 
'-1.2345' 
>>> float(d) 
-1.2344999999999999