用Python划分值

Ann*_*ine 2 python python-2.x

我做了一个xlrd到json解析脚本,它不分割变量.它总是返回零...我用来分割变量的代码是:

if not row_values[2]:
   key['nr_one'] = 0
else:
   key['nr_one'] = int(row_values[2])
if not row_values[4]:
   key['nr_two'] = 0
else:     
   key['nr_two'] = int(row_values[4])
try:   
    key['perc'] = float(key['nr_two']/key['nr_one']*100)
except ZeroDivisionError:
    key['perc'] = 0
Run Code Online (Sandbox Code Playgroud)

我在脚本的末尾打印了以下代码:

print('one')
print(key['nr_one'])
print('two')
print(key['nr_two']) 
print('perc')
print(key['perc'])
Run Code Online (Sandbox Code Playgroud)

返回:

one
103386547
two
135680054
perc
0.0
Run Code Online (Sandbox Code Playgroud)

所以.我不明白为什么分裂失败并返回0?请有人帮我格式化计算百分比的好方法

Eri*_*nil 5

整数除法是这样的:

1/3 #=> 0

理解这个结果的最简单方法不是作为一个分数,而是作为问题的答案"How many times do 3 fit in 1?".

所以0乘以100仍然是:

1/3 * 100 #=> 0

你需要

100.0*1/3 #=> 33.333333

对于你的代码:

key['perc'] = 100.0*key['nr_two']/key['nr_one'](不使用float(...))

它返回:

76.1987808465937

注意:您确实需要键入100.0(浮点数),而不仅仅是100(int).76否则你会得到.


Fuj*_*Liu 5

它应该是 float(key['nr_two']) /key['nr_one']*100