[英]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.