亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計算百分比差異 - python

計算百分比差異 - python

一只斗牛犬 2021-11-16 09:42:25
我正在計算列表中兩個值之間的百分比差異。#cal percentage dff: (val2/val)/100values = [0.11889, 0.07485, 0.01070, 0.03076, 0.01606]values = [int(round(i*100)) for i in values]conversion_values = []for x in range(1, len(values), 1):    val_1 = values[x-1]    if val_1 == 0.0: #Check if val_1 is 0.        conversion_values.append('-')    else:        val_2 = values[x]        diff = (val_2/val_1)*100        conversion_values.append(diff)conversion_valuesoutput:[0, 0, 300, 0]期望的輸出:   [58, 14, 300, 67]不確定我在這里做錯了什么?在 Excel 中,這個計算工作正常,但在這里不行,一定與小數點有關??注意 - 這不是關于百分比變化的問題,這是完全不同的事情。
查看完整描述

2 回答

?
有只小跳蛙

TA貢獻1824條經驗 獲得超8個贊

執行時您會失去精度,(val_2)/val_1因此將其中之一轉換為浮點數以獲得最終結果為浮點數,然后將結果轉換為 int


values = [0.11889, 0.07485, 0.01070, 0.03076, 0.01606]

values = [int(round(i*100)) for i in values]


conversion_values = []

for x in range(1, len(values), 1):

    val_1 = values[x-1]

    if val_1 == 0.0: #Check if val_1 is 0.

        conversion_values.append('-')

    else:

        val_2 = values[x]

        diff = int(round((float(val_2)/val_1)*100)) # change to float -->round--> int

        conversion_values.append(diff)


conversion_values

輸出:


[58, 14, 300, 67]


查看完整回答
反對 回復 2021-11-16
?
梵蒂岡之花

TA貢獻1900條經驗 獲得超5個贊

看起來您正在使用整數除法。請改寫這個

diff = (val_2/val_1)*100

對此

diff = (val_2/float(val_1))*100

甚至到這個

diff = (val_2/(val_1 * 1.0))*100


查看完整回答
反對 回復 2021-11-16
  • 2 回答
  • 0 關注
  • 402 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號