簡體   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