Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
强制python打印一定数量的小数位数_Python_Python 3.x - Fatal编程技术网

强制python打印一定数量的小数位数

强制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

我有一个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
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应该是。。。