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

时间:2019-05-20 08:34:06

标签: python python-3.x

我有一个Python程序,该程序需要一些浮点型值并将其写入文件。

我将这些数字四舍五入到小数点后六位,然后在写入文件之前将其转换为字符串类型。

file.write(str(round(value,6)))

但是对于某些数字,写入文件的值采用以下所示的格式。

e.g. 3e-06 or 4e-03

如何避免这种情况,而是以十进制格式写出

0.000003 and 0.004000

如何在小数点后精确打印6位数字。

2 个答案:

答案 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)