我正在使用Python并且有两个包含浮点样式值的字符串,例如:
s = s[:9] + ' ' + s[12:]
我正在寻找一种解决方案,只需将两个值一起添加或减去一个新字符串,保持小数精度不变。我已经尝试将它们转换为浮点数并使用+ b等,但这似乎是不一致的。
因此,此示例中的结果字符串将为字符串
a = '0.0000001'
b = '0.0003599'
我已经完成了许多示例/方法,但没有找到答案。任何帮助表示赞赏。
答案 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'