Skip to main content
 首页 » 编程设计

python之如何在 Django 中将 float 和小数相乘

2025年05月04日36dyllove98

我正在使用 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 是舍入整数