繁体   English   中英

Django最大聚合比较问题

[英]Django max aggregate comparison issue

对于将Decimal值与Django Max聚合查询集的值进行比较,我感到困惑。 当我期望比较结果为真时,比较将返回false,但我不知道为什么。

我得到的查询集如下:

prev_hourly_rate = PayRate.objects.filter(employee__exact=emp_pk).exclude(pk=pay_rate_id).aggregate(Max('hourlyRate'))

那回来了

 {'hourlyRate__max': Decimal('25.1234')}

我想将该十进制值与另一个十进制值25.1234(由hr变量表示)进行比较,但是返回的是False。 我正在做比较:

if prev_hourly_rate['hourlyRate__max'] == hr:

要么

if prev_hourly_rate['hourlyRate__max'] == Decimal(hr):

甚至

if prev_hourly_rate['hourlyRate__max'] == Decimal.from_float(hr):

并且它总是返回False。 我显然缺少了一些非常简单的东西。 请指出我疲倦的大脑是什么。 谢谢。

您可能需要看一下SO讨论以获取更多信息,但简短的版本是Decimal(hr) == Decimal('25.123400000000000176214598468504846096038818359375')

为了用所需的确切值创建一个十进制数,必须使用浮点数的字符串表示形式。 prev_hourly_rate['hourlyRate__max'] == Decimal(repr(hr))应该可以为您提供所需的东西。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM