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

How do I get Django to display integers instead of floats

我正在使用 Django,我有一个项目,我在其中定义了一个 Student 对象,该对象具有 FLOAT 类型的 1 年级和 2 年级字段,在此 class 中,我构建了一个返回的函数有问题的学生的成绩虽然我遇到了一个问题,当我得到一个整数时无用的数字。例如,如果你的成绩是 5 和 9,你得到 7.0,我想知道如何让 HTML/Django 逻辑语法显示它应该显示的内容。以防万一,这是我计算成绩的函数。

    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.This是否会浮点数可以通过计算模数来检查。如果模数 returns 为 0,则表示结果的小数部分为 0。

如果模数为 0,return 结果转换为整数,将删除小数部分,否则 return 结果为 float 本身。

示例:

  • 3.0 % 2 == 1.0 因此 return 结果 3.0 / 2 = 1.5
  • 2.0 % 2 == 0.0 因此 return 结果 (int)(2.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)