我必须计算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/

10-12 16:48
查看更多