我很困惑將Decimal值與Django Max聚合查詢集的值進行比較。當我期望它是真實的時候,比較結果是錯誤的,我不知道爲什麼。Django最大聚合比較問題
我得到這樣的查詢集:
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(由變量小時表示),但是這回假。我做這樣的比較:
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。我顯然錯過了一些非常簡單的事情。請指出我疲倦的大腦是什麼。謝謝。
什麼是hr?如果它是浮動的,它可能不完全等同於25.1234。嘗試打印「十進制(小時)」的結果來查看。 – 2013-03-27 15:18:30