相关疑难解决方法(0)

以科学计数法显示小数

我该如何显示:

十进制('40800000000.00000000000000')为'4.08E + 10'?

我试过这个:

>>> '%E' % Decimal('40800000000.00000000000000')
'4.080000E+10'
Run Code Online (Sandbox Code Playgroud)

但它有额外的0.

python string-formatting

143
推荐指数
7
解决办法
24万
查看次数

防止 f 字符串将浮点数转换为科学记数法

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

>> number = 0.0000001
>> string = f"Number: {number}"
>> print(string)
Number: 1e-07
Run Code Online (Sandbox Code Playgroud)

我的预期是: Number: 0.0000001

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

基本上与这个问题相反。

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

filename = f"number_{number:.10f}_other_number_{other_number:.10f}.json"
Run Code Online (Sandbox Code Playgroud)

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

python floating-point f-string

7
推荐指数
2
解决办法
599
查看次数