我想在我的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')
答案 0 :(得分:1)
正如selchuk所提到的那样,如果你做float(self.flat_price) / self.flat_prediction_price
会给你带来浮动的结果(你可以从那里回合)。
你现在正在做的事情是你将int除以int,这会给你一个int结果。然后你得到那个int结果之后进行四舍五入,因为它已经只是0
,所以它不会围绕你希望它舍入的方式。通过使用int潜水浮动(或者可以将两者都转换为浮动),您将获得浮动结果并且可以舍入该结果。