如何让Django显示整数而不是浮动数

问题描述 投票:0回答:1

我正在使用Django,我有一个项目,我定义了一个Student对象,这个对象的字段为float类型的年级1和年级2,在这个类中,我构建了一个函数,回馈了相关学生的成绩,不过我遇到了一个问题,当我得到一个整数时,无用的数字。例如,如果你的成绩是5,9,你得到的是7.0,我想知道如何能让HTMLDjango逻辑语法显示出应有的成绩。以防万一,这是我计算成绩的功能。

    def get_grade(self):

        if self.grade_1 is None and self.grade_2 is None:
            return "No grades yet"
        elif self.grade_2 is None:
            return self.grade_1
        elif self.grade_1 is None:
            return self.grade_2
        else:
            return (self.grade_1 + self.grade_2)/2
python django function truncate
1个回答
0
投票

检查年级1和年级2之和除以2时是否会产生float.这可以通过计算模数来检查。如果模数返回0,意味着结果的小数部分为0。如果模数为0,则返回转换为整数的结果,并去除小数部分,否则返回结果本身为浮点数。例如:3.0 % 2 == 1

  • 3.0 % 2 == 1.0 因此返回结果 3.0 2 = 1.5
  • 2.0 % 2 == 0.0,因此返回结果 (int)(2.0 2) == 1。

在 else 块中做如下修改。

total = self.grade_1 + self.grade_2
if total%2 == 0:
    return (int)(result/2)
else:
    return result2

0
投票

如果你想要整数值,那么你可以在返回值的时候使用round或者int... 就像下面这样。

def get_grade(self):

    if self.grade_1 is None and self.grade_2 is None:
        return "No grades yet"
    elif self.grade_2 is None:
        return int(self.grade_1)
    elif self.grade_1 is None:
        return int(self.grade_2)
    else:
        return int((self.grade_1 + self.grade_2)/2)

或round(),如下所示

def get_grade(self):

    if self.grade_1 is None and self.grade_2 is None:
        return "No grades yet"
    elif self.grade_2 is None:
        return round(self.grade_1)
    elif self.grade_1 is None:
        return round(self.grade_2)
    else:
        return round((self.grade_1 + self.grade_2)/2)
© www.soinside.com 2019 - 2024. All rights reserved.