如何将数字的格式复制到另一个数字?

时间:2013-10-13 13:37:05

标签: python

我有以下内容:

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 ......在这种情况下我不想要小数(例如匹配原始字符串)

3 个答案:

答案 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