Python 在django中将十进制值限制为仅两位小数

Python 在django中将十进制值限制为仅两位小数,python,mysql,django,Python,Mysql,Django,这就是我如何获得许多学校的平均分数 def get_clu_average(self): clu_strength = 0 clu_total = 0 for school in self.school_set.all(): clu_strength = clu_strength + school.strength clu_total = clu_total + school.get_average() * school.strength

这就是我如何获得许多学校的平均分数

def get_clu_average(self):
    clu_strength = 0
    clu_total = 0
    for school in self.school_set.all():
        clu_strength = clu_strength + school.strength
        clu_total = clu_total + school.get_average() * school.strength
    return clu_total / clu_strength
因此,该值将是一个十进制数。当我直接在模板中使用它时,我得到了很多小数位。如何将该值限制为仅两位小数?

您可以在模板中使用内置筛选器:

{{ value|floatformat:'2' }}     
或者通过上下文或使用实例而不是浮点来限制视图代码中的精度:

val = obj.get_clu_average()

val_str = '{.2f}'.format(val)
# OR
from decimal import Decimal as D
val_dec = D(val).quantize(D('0.01'))