在django中将小数值限制为只有2位小数

时间:2017-09-28 22:05:49

标签: 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
    return clu_total / clu_strength

因此该值将是十进制数。当我在模板中直接使用它时,我得到了很多小数位。如何将值限制为仅2位小数?

1 个答案:

答案 0 :(得分:1)

您可以在模板中使用内置的floatformat过滤器:

{{ value|floatformat:'2' }}     

或根据您的上下文formatting a string限制视图代码的精度,或者使用decimal.Decimal实例而不是浮点数:

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'))