我正在使用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
检查年级1和年级2之和除以2时是否会产生float.这可以通过计算模数来检查。如果模数返回0,意味着结果的小数部分为0。如果模数为0,则返回转换为整数的结果,并去除小数部分,否则返回结果本身为浮点数。例如:3.0 % 2 == 1
在 else 块中做如下修改。
total = self.grade_1 + self.grade_2
if total%2 == 0:
return (int)(result/2)
else:
return result2
如果你想要整数值,那么你可以在返回值的时候使用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)