Python - 将算术浮动为字符串

时间:2018-01-15 21:56:22

标签: python string

我正在使用Python并且有两个包含浮点样式值的字符串,例如:

s = s[:9] + '   ' + s[12:]

我正在寻找一种解决方案,只需将两个值一起添加或减去一个新字符串,保持小数精度不变。我已经尝试将它们转换为浮点数并使用+ b等,但这似乎是不一致的。

因此,此示例中的结果字符串将为字符串

a = '0.0000001'
b = '0.0003599'

我已经完成了许多示例/方法,但没有找到答案。任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:2)

看起来decimal模块应该做你想做的事情:

>>> from decimal import *
>>> a = '0.0000001'
>>> b = '0.0003599'
>>> Decimal(a)+Decimal(b)
Decimal('0.0003600')

答案 1 :(得分:1)

mpmath库可以执行任意精度浮点运算:

>>> from mpmath import mpf
>>> a = mpf('0.0003599')
>>> b = mpf('0.0000001')
>>> print(a + b)
0.00036

答案 2 :(得分:0)

对于我能想到的所有情况,转换为float都很好:

>>> str(sum(float(i) for i in (a, b)))
'0.00036'
>>> str(sum(map(float, (a, b))))
'0.00036'
>>> str(float(a) + float(b))
'0.00036'