3

我有以下内容:

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

4

3 回答 3

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

于 2013-10-13T13:49:30.400 回答
2
strA = '0.8243'
strB = '12.3'
C = float(strA) + float(strB)
print '{:.{}f}'.format(C, len(strB.partition('.')[2]))

输出

13.1
于 2013-10-13T13:42:49.743 回答
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

于 2013-10-13T13:50:19.887 回答