为什么在 django list_display 中四舍五入的浮点数字
Why is a float digit rounded in django list_display
我想在我的 django 管理列表中显示一个字段,它是除以两个 int 变量的结果。我期待看到像 0.95
这样的浮点数,但我有 0,例如。为什么?
我的模特:
class Flat(models.Model):
flat_price = models.PositiveIntegerField(verbose_name='Цена квартиры')
flat_prediction_price = models.PositiveIntegerField(verbose_name='Прогноз')
def show_price(self):
return unicode(self.flat_price) + u" тыс. руб."
def show_accuracy(self):
if self.flat_prediction_price is None:
return float(999)
else:
result = self.flat_price/self.flat_prediction_price return round(result, 2)
和管理员:
class FlatAdmin(admin.ModelAdmin):
model = Flat
inlines = [NeedInline]
list_display = ('show_price','show_accuracy')
正如 selchuk 所提到的,如果你这样做 float(self.flat_price) / self.flat_prediction_price
那将 return 你的浮动结果(你可以从那里舍入)。
您现在正在做的是用一个整数除以一个整数,这将得到一个整数结果。然后在获得该 int 结果后四舍五入,这不会四舍五入您希望它四舍五入的方式,因为它已经只是 0
。通过 int 潜水浮点数(或者可以将两者都转换为浮点数),您将得到一个浮点数结果并可以对该结果进行舍入。
我想在我的 django 管理列表中显示一个字段,它是除以两个 int 变量的结果。我期待看到像 0.95
这样的浮点数,但我有 0,例如。为什么?
我的模特:
class Flat(models.Model):
flat_price = models.PositiveIntegerField(verbose_name='Цена квартиры')
flat_prediction_price = models.PositiveIntegerField(verbose_name='Прогноз')
def show_price(self):
return unicode(self.flat_price) + u" тыс. руб."
def show_accuracy(self):
if self.flat_prediction_price is None:
return float(999)
else:
result = self.flat_price/self.flat_prediction_price return round(result, 2)
和管理员:
class FlatAdmin(admin.ModelAdmin):
model = Flat
inlines = [NeedInline]
list_display = ('show_price','show_accuracy')
正如 selchuk 所提到的,如果你这样做 float(self.flat_price) / self.flat_prediction_price
那将 return 你的浮动结果(你可以从那里舍入)。
您现在正在做的是用一个整数除以一个整数,这将得到一个整数结果。然后在获得该 int 结果后四舍五入,这不会四舍五入您希望它四舍五入的方式,因为它已经只是 0
。通过 int 潜水浮点数(或者可以将两者都转换为浮点数),您将得到一个浮点数结果并可以对该结果进行舍入。