我想把字符串中所有的浮点数四舍五入到小数点后10位。我提出了下面的实现,它使用正则表达式查找所有浮点数,通过对每个浮点数调用float
将它们转换为float,然后使用Python中的格式字符串实现舍入(例如{:.10f}".format(float("0.12345678912345777")
)
import re
def truncate_floats(input, precision):
for f in re.findall(r"[-+]?\d*\.\d{{{},}}".format(precision), input):
format_str = "{{:.{}f}}".format(precision)
input = input.replace(f, format_str.format(float(f)))
return input
In [1]: truncate_floats("x + -2.12345678912345777 + 123 + 0.123", 10)
Out[1]: 'x + -2.1234567891 + 123 + 0.123'
有没有更好的方法来实现这一点?该代码适用于python2.7和3.7
Update1:不能保证字符串在float和其他对象之间有空格
目前没有回答
相关问题 更多 >
编程相关推荐