强制python打印一定数量的小数位数
我有一个python程序,它接受一些浮点型值并写入文件 我将这些数字四舍五入到小数点后6位,然后在写入文件之前转换为字符串类型强制python打印一定数量的小数位数,python,python-3.x,Python,Python 3.x,我有一个python程序,它接受一些浮点型值并写入文件 我将这些数字四舍五入到小数点后6位,然后在写入文件之前转换为字符串类型 file.write(str(round(value,6))) 但是,对于某些数字,写入文件的值的格式如下所示 e.g. 3e-06 or 4e-03 我怎样才能避免这种情况,而是用十进制格式写出来,比如 0.000003 and 0.004000 如何精确打印小数点后的6位数字。您可以使用f字符串f'{value:.6f}' 例如: value = 0.234
file.write(str(round(value,6)))
但是,对于某些数字,写入文件的值的格式如下所示
e.g. 3e-06 or 4e-03
我怎样才能避免这种情况,而是用十进制格式写出来,比如
0.000003 and 0.004000
如何精确打印小数点后的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
0.234
1
9.52692e-11
此外,在评论中链接的答案中,提到了:g
。这是可行的,但在这种情况下可能不行,因为g
可以在适当的地方打印科学符号,并丢弃不重要的零。考虑一个稍微修改的例子,使用<代码> g < /代码>:
value = 0.234
print(f'{value:.6g}')
value = 1
print(f'{value:.6g}')
value = 0.000000000095269175
print(f'{value:.6g}')
输出:
0.234000
1.000000
0.952692
0.234
1
9.52692e-11
您还可以使用基本字符串格式:
a = 3e-06
# Outputs 0.000003
print('%.6f' % a)
# Outputs 0.000003000000
print('%.12f' % a)
也许这会有所帮助-@Sanketh并不完全-
g
的工作原理与f
不同。为了完整起见,我把它包括在我的答案中。试试“打印(格式)(14.4499923,.3f')”、“@junior\u软件你想说什么?你需要做value=format(值,.6f'))现在这个值在点后有6个小数点注意,它将在点后正好打印6个点,如果没有,它将用0@junior_software应该是。。。