%f 将数字四舍五入

%f rounds the numbers

我正在编写代码来计算每个键的平均值,然后将其打印出来,但是当我在 print() 中使用 %f 时,它会将数字四舍五入,所以我得到的不是 6.0666666666666666667,而是 6.066667。我希望它打印原始数字而不四舍五入。我怎样才能解决这个问题? 提前致谢

for i in range(0, n):
    print('%s,%f' %(ord_list[i][0], ord_list[i][1]))

此外,我知道我可以做到这一点,但是这会打印键值和平均值,中间有一个 space 我希望只有一个逗号

for i in range(0, n):
     print(ord_list[i][0], ord_list[i][1])

完整代码以防万一

import csv
from statistics import mean 
from collections import OrderedDict

with open('grades.txt', 'r') as f_handle:
    csv_reader = csv.reader(f_handle)
    dct = OrderedDict()
    dct = {row[0]: row[1:] for row in csv_reader}
    dct = {k:[int(i) for i in v] for k,v in dct.items()}
    ord_dic = OrderedDict()
    for k,vals in dct.items():
        for_dic = {k : mean(vals)}
        ord_dic.update(for_dic)

 
ord_dic = {k: v for k, v in sorted(ord_dic.items(), key=lambda item: item[1])}

ord_list = sorted(ord_dic.items(), key=lambda t: t[::-1])
print(ord_list)
n = len(ord_list)

for i in range(0, n):
    print('%s,%f' %(ord_list[i][0], ord_list[i][1]))

在这种情况下,您可以使用 f 弦。

使用如下打印语句

print(f" {ord_list[i][0]}, {ord_list[i][1]}")

使用 %f 将其转换为浮点数(但您的数字实际上是双精度数)并降低精度。

您可以通过执行以下操作打印不带舍入的浮点数

print "{0:.15f}".format(a)

其中 15f 表示您希望小数点后多少个数字。