我必须计算pos,neg和0 val,然后将它们除以数组大小,然后返回三个具有6个小数位的值。
这是数组
6 -4 3 -9 0 4 1
我尝试将变量转换为浮点数,并且在每个阶段都使用了浮点函数
def plusMinus(arr):
a=float(0.000000);
b=float(0.000000);
c=float(0.000000);
for i in arr:
if i==0:
a=a+float(1.000000);
elif i<0:
b=b+float(1.000000);
else:
c=c+float(1.000000);
a=a/(float(len(arr))-float(1));
b=b/(float(len(arr))-float(1));
c=c/(float(len(arr))-float(1));
print ("{0:.6f}".format(c));
print ("{0:.6f}".format(b));
print ("{0:.6f}".format(a));
if __name__ == '__main__':
n = int(input())
arr = list(map(int, input().rstrip().split()))
plusMinus(arr)
预期产量:
0.500000
0.333333
0.166667
我的输出:
0.600000
0.400000
0.200000
最佳答案
您不需要将值声明为浮点数,只需允许python处理这些值即可:
def plusMinus(arr):
pos = 0
neg = 0
zer = 0
for n in arr:
if n > 0:
pos += 1
elif n < 0:
neg += 1
else:
zer += 1
print(format(pos / len(arr), '.6f'))
print(format(neg / len(arr), '.6f'))
print(format(zer / len(arr), '.6f'))
关于python - 即使我在python中将变量声明为float,四舍五入仍会发生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56849462/