我有一个python程序,它需要一些浮点类型值并将其写入文件。
我将这些数字四舍五入到小数点后六位,然后在写入文件之前将其转换为字符串类型。
file.write(str(round(value,6)))
Run Code Online (Sandbox Code Playgroud)
但是,对于某些数字,写入文件的值采用以下格式。
e.g. 3e-06 or 4e-03
Run Code Online (Sandbox Code Playgroud)
如何避免这种情况,而是以十进制格式写出来,例如
0.000003 and 0.004000
Run Code Online (Sandbox Code Playgroud)
如何在小数点后精确打印6位数字。
您可以使用f-string f'{value:.6f}'。
例:
value = 0.234
print(f'{value:.6f}')
value = 1
print(f'{value:.6f}')
value = 0.95269175
print(f'{value:.6f}')
Run Code Online (Sandbox Code Playgroud)
输出:
0.234000
1.000000
0.952692
Run Code Online (Sandbox Code Playgroud)
另外,在评论中链接的答案中,有提及:g。那可以行得通,但在这种情况下可能行不通,因为g 可以在适当的地方打印科学计数法,并丢弃无关紧要的零。考虑一个稍微修改的示例,使用g:
value = 0.234
print(f'{value:.6g}')
value = 1
print(f'{value:.6g}')
value = 0.000000000095269175
print(f'{value:.6g}')
Run Code Online (Sandbox Code Playgroud)
输出:
0.234
1
9.52692e-11
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
236 次 |
| 最近记录: |