python - 防止 f 字符串将 float 转换为科学记数法

标签 python floating-point f-string

我对 python 3.7.2 中 f-strings 的这种默认行为感到震惊:

>> number = 0.0000001
>> string = f"Number: {number}"
>> print(string)
Number: 1e-07

我的预期是:Number: 0.0000001
这非常烦人,尤其是对于文件名的创建。
如何禁用这种自动转换为科学记数法的功能?为什么首先启用它?

基本上与此相反 question .

编辑:我想避免通过 {number:.8f} 为 float 设置固定长度因为我的数字有不同的长度,我不想有任何尾随零。我想使用 f-strings 自动生成文件名,如下所示:
filename = f"number_{number:.10f}_other_number_{other_number:.10f}.json"

我正在寻找一个简单的修饰符,它可以禁用自动科学记数法,同时保持浮点数的原始精度。

最佳答案

https://docs.python.org/3.4/library/string.html#format-specification-mini-language

>>> number = 0.0000001
>>> f"Number: {number}"
'Number: 1e-07'
>>> f"Number: {number:f}"
'Number: 0.000000'
>>> f"Number: {number:.10f}"
'Number: 0.0000001000'

默认 :f精度为 6。您可以将其更改为例如10 与 :.10f

关于python - 防止 f 字符串将 float 转换为科学记数法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60410426/

相关文章:

python - 在非父模型的内联表单集中更改模型字段的查询集

python - 是否可以像使用字符串和格式一样重用f字符串?

Python 自动舍入小数

Python float silent overflow 精度错误

Python3 – 在 f 字符串中用\n 分隔的打印列表

python - f 字符串不支持行连接吗?

python - 将 XML 响应转换为 Pandas 数据框

python - 如何使用Python调用C可执行文件

python - Gensim n_similarity 词不在词汇表中

c++ - 用一个字节表示一个 float