リスト内の2つの値の差のパーセンテージを計算しています。
#cal percentage dff: (val2/val)/100
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 = (val_2/val_1)*100
conversion_values.append(diff)
conversion_values
output:
[0, 0, 300, 0]
必要な出力:
[58, 14, 300, 67]
ここで何が間違っているのかわかりませんか?Excelでは、この計算は正常に機能しますが、ここでは機能しません。小数点と関係があるはずですか?
注-これはパーセンテージの変化についての質問ではありません、それはまったく別のことです。
実行(val_2)/val_1
すると精度が低下するため、いずれかをfloatに変換して最終結果をfloatとして取得し、結果を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]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加