我有以下内容:
strA = '0.8243'
strB = '12.3'
strC = float(strA) + float(strB)
print strC # 13.1243...I want it formatted like that of strB...13.1
strA和strB将改变并且将具有未知的小数位数。但是,我总是希望小数位保留strB的位数。这可能吗?
注意:如果strB ='12',那么float(strB)= 12.0 ......在这种情况下我不想要小数(例如匹配原始字符串)
答案 0 :(得分:3)
您应该在此处使用decimal.Decimal
课程,并修改您希望舍入的方式:
strA = '0.8243'
strB = '12.3'
from decimal import Decimal as D
a, b = map(D, [strA, strB])
print (a + b).quantize(b)
# 13.1
strB = '12'
会为您提供13
。
答案 1 :(得分:2)
strA = '0.8243'
strB = '12.3'
C = float(strA) + float(strB)
print '{:.{}f}'.format(C, len(strB.partition('.')[2]))
<强>输出强>
13.1
答案 2 :(得分:2)
不能做任何更简单的事情:
strA = '0.8243'
strB = '12.3'
strC = float(strA) + float(strB)
c=len(strB.split('.')[1])
d=round(strC, c)
print(d)
答案:13.1