%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 表示您希望小数点后多少个数字。
我正在编写代码来计算每个键的平均值,然后将其打印出来,但是当我在 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 表示您希望小数点后多少个数字。