四舍五入到小数位数后如何保持端子零?

时间:2019-03-22 21:51:56

标签: python python-3.x

问题要求在未知列表中输出负整数的十进制比例。所需的答案是0.500000(小数点后6位),但我的程序仅输出0.5。如何保持5个终端零?

我尝试使用round(number, ndigits)库中的getcontext().prec函数和Decimal。所有这些仅产生了0.5。

def plusMinus(arr):
    from decimal import getcontext, Decimal
    getcontext().prec = 6
    negamt = 0
    posamt = 0
    zeroamt = 0
    for i in arr:
        if i < 0:
            negamt += 1
        elif i > 0:
            posamt += 1
        else:
            zeroamt += 1
    print(Decimal(posamt)/Decimal(n), Decimal(negamt)/Decimal(n), Decimal(zeroamt)/Decimal(n))

未知数组的预期结果为0.500000、0.333333、0.166667;我的程序返回0.5、0.333333、0.166667。

1 个答案:

答案 0 :(得分:1)

您要更改打印格式。如果希望小数点后六位数字,则可以使用以下格式字符串:

>>> print('{:1.6f}'.format(0.5)})
0.500000