本文只是记录一下工作中遇到的坑,详情请移步
https://docs.python.org/2/library/decimal.html
关于计算1/3*3问题:
1、首先支付计算金额需要用到
decimal库,models默认DecimalField类型
from decimal import Decimal
Decimal(1.00) / Decimal(3.00) * 3
Decimal('0.9999999999999999999999999999')
2、有个需求是对计算的结果需要向下取整:
int(Decimal(1.00) / Decimal(3.00) * 3) = 0;产生了错误,实际上得到应该是1
解决办法:使用浮点数计算
int(float(Decimal(1.00) / Decimal(3.00) * 3)) = 1