我正在使用 django 2.0 和 Python 3.6.4
我的模型中有两个字段,名为 total 和 tax_total,它们都是小数字段。
total = models.DecimalField(default=0.00, max_digits=100, decimal_places=2)
tax_total = models.DecimalField(default=0.00, max_digits=100, decimal_places=2)
我想在函数中计算乘以 1.15 后的值。
def pre_save_cart_receiver(sender, instance, *args, **kwargs):
new_tax_total = instance.total * Decimal(1.15)
instance.tax_total = format(new_tax_total, '.2f')
pre_save.connect(pre_save_cart_receiver, sender=Cart)
它给我错误: * 不支持的操作数类型:'float' 和 'Decimal'
当我想添加两位小数时,我会这样做:
new_total = math.fsum([cart_total, shipping_total])
new_total_formatted = format(new_total, '.2f')
math 有类似的东西吗?
请您参考如下方法:
试试这个
new_tax_total = float(instance.total) * 1.15
如果需要对结果进行舍入,使用round()
new_tax_total = round(float(instance.total) * 1.15,2) 其中 2 是舍入整数
