Python 计算金额

由于浮点数的二进制转换会丢失精度,对于金额的存储与计算,一般用Decimal十进制编码类型。

有两个问题需要考虑,一是舍入规则,二是保留小数点后几位。默认情况下是四舍五入,保留两位小数。

Decimal 的 quantize 方法能处理数字保留几位小数点的问题。

price = Decimal('8.014')
price2 = price.quantize(Decimal('.00'))
# price2: 8.01
balance = Decimal('200.105')
balance2 = balance.quantize(Decimal('.00'))
# balance2: 200.11

Continue Reading