我有一个Python程序,该程序需要一些浮点型值并将其写入文件。
我将这些数字四舍五入到小数点后六位,然后在写入文件之前将其转换为字符串类型。
file.write(str(round(value,6)))
但是对于某些数字,写入文件的值采用以下所示的格式。
e.g. 3e-06 or 4e-03
如何避免这种情况,而是以十进制格式写出
0.000003 and 0.004000
如何在小数点后精确打印6位数字。
答案 0 :(得分:6)
您可以使用 f字符串 f'{value:.6f}'
。
示例:
value = 0.234
print(f'{value:.6f}')
value = 1
print(f'{value:.6f}')
value = 0.95269175
print(f'{value:.6f}')
输出:
0.234000
1.000000
0.952692
此外,在评论中链接的答案中,提到了:g
。 可以起作用,但在这种情况下可能行不通,因为g
可以在适当的位置打印科学计数法,和会丢弃无关紧要的零。考虑使用g
的稍作修改的示例:
value = 0.234
print(f'{value:.6g}')
value = 1
print(f'{value:.6g}')
value = 0.000000000095269175
print(f'{value:.6g}')
输出:
0.234
1
9.52692e-11
答案 1 :(得分:0)
您还可以使用基本的字符串格式:
a = 3e-06
# Outputs 0.000003
print('%.6f' % a)
# Outputs 0.000003000000
print('%.12f' % a)