我有 2 个字符串,每个都包含一个十进制数,我们可以假设它们具有相同的精度。
我不能只对精度进行硬编码,因为这些字符串集有时可能具有不同的精度。
我只是想将它们的两个值相加,并使总和保持上述值的精度。
其中一个值可能有负数,这就是为什么我想避免字符串拼接的原因,这是我最初的想法。
我的代码:
str1 = "0.16107000"
str2 = "0.00000270"
total = abs(float(str1)) + abs(float(str2))
print("Total is " + str(total))
输出:
Total is 0.16107269999999999
期望的输出:
Total is 0.16107270
另一个让事情变得棘手的例子:
str1 = "70.00000000"
str2 = "0.00131251"
我需要总数为 70.00131251
执行此操作的最佳方法是什么?
最佳答案
from decimal import *
getcontext().prec = 8
str1 = "0.16107000"
str2 = "0.00000270"
total = Decimal(str1)+Decimal(str2)
print("Total is " + str(total))
# Total is 0.16107270
关于python - 在字符串中添加 2 个小数,保留精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57426963/