第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

使用注釋獲取百分比給我結(jié)果,不帶逗號 7/2 = 3 而不是 3.5

使用注釋獲取百分比給我結(jié)果,不帶逗號 7/2 = 3 而不是 3.5

白板的微信 2023-12-29 10:09:44
我想要獲得以下百分比值:nomberesteda * 100 / nomberhodor = 0.00我使用這個(gè)查詢集:listilam = MediaSecParnt.objects.filter(date__range=[primary1, primary2]).values(            'withsecondray__name','withdegrey__name','withsecondray_id','withdegrey_id').annotate(nomberhodor=Sum('nomberhodor'), nomberesteda=Sum('nomberesteda'), percent=((((F('nomberhodor')*100)/(F('nomberesteda'))))))    這里 :percent=((((F('nomberhodor')*100)/(F('nomberesteda'))))))返回百分比值,不帶逗號!nomberhodor列是整數(shù)并且與 nomberesteda 相同結(jié)果如下:<QuerySet [{'nomberhodor': 70, 'nomberesteda': 300, 'percent': 23},{'nomberhodor': 64, 'nomberesteda': 150, 'percent': 42}, {'nomberhodor': 33, 'nomberesteda': 66, 'percent': 50}, {'nomberhodor': 50, 'nomberesteda': 200, 'percent': 25}, {'nomberhodor': 220, 'nomberesteda': 725, 'percent': 30},{'nomberhodor': 567, 'nomberesteda': 900, 'percent': 63}, {'nomberhodor': 309, 'nomberesteda': 910, 'percent': 33}]>它應(yīng)該是 :   <QuerySet [{'nomberhodor': 70, 'nomberesteda': 300, 'percent': 23.33},{'nomberhodor': 64, 'nomberesteda': 150, 'percent': 42.66}, {'nomberhodor': 33, 'nomberesteda': 66, 'percent': 50.00}, {'nomberhodor': 50, 'nomberesteda': 200, 'percent': 25.00}, {'nomberhodor': 220, 'nomberesteda': 725, 'percent': 30.34},{'nomberhodor': 567, 'nomberesteda': 900, 'percent': 63.00}, {'nomberhodor': 309, 'nomberesteda': 910, 'percent': 33.95}]>
查看完整描述

2 回答

?
蕪湖不蕪

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以使用ExpressionWrapper[Django-doc]指定輸出格式:

from django.db.models import ExpressionWrapper, FloatField


.annotate(

? ? nomberhodor=Sum('nomberhodor'),

? ? nomberesteda=Sum('nomberesteda'),

? ? percent=ExpresssionWrapper(

? ? ? ? F('nomberhodor')*100/F('nomberesteda'),

? ? ? ? output_field=FloatField()

? ? )

)

對于某些數(shù)據(jù)庫,這是由于類型推斷造成的。在這種情況下,您可以使用Cast:


from django.db.models import FloatField

from django.db.models.functions import Cast


.annotate(

? ? nomberhodor=Sum('nomberhodor'),

? ? nomberesteda=Sum('nomberesteda'),

? ? percent=Cast(F('nomberhodor'), output_field=FloatField()) *

? ? ? ? 100/F('nomberesteda')

? ? )

)


查看完整回答
反對 回復(fù) 2023-12-29
?
當(dāng)年話下

TA貢獻(xiàn)1890條經(jīng)驗(yàn) 獲得超9個(gè)贊

percent=ExpressionWrapper(Cast(F('nomberhodor'), FloatField())/F('nomberesteda'),

    output_field=FloatField()))

    print(listilam):


<QuerySet [{'percent': 0.23333333333333334}, 

{'percent': 0.4266666666666667}, 

{'percent': 0.5}, { 'percent': 0.25},

 {'percent': 0.30344827586206896},

 {'percent': 0.63}, 

{'percent': 0.3395604395604396}]>

現(xiàn)在工作了


查看完整回答
反對 回復(fù) 2023-12-29
  • 2 回答
  • 0 關(guān)注
  • 200 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號