我做了一个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?请有人帮我格式化计算百分比的好方法
整数除法是这样的:
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否则你会得到.