没有加号的科学计数法

4

'{:e}'.format 函数以 "1e+06" 的形式打印正数值。

是否有其他格式可以将其显示为 "1e6"(负指数显然为 "1e-6")?

还是需要一个自定义格式函数吗?

1个回答

4
你可以创建自己的 string.Formatter 子类:
import string


class MyFormatter(string.Formatter):
    def format_field(self, value, format_spec):
        if format_spec == 'm':
            return super().format_field(value, 'e').replace('e+', 'e')
        else:
            return super().format_field(value, format_spec)


fmt = MyFormatter()
v = 1e+06
print(fmt.format('{:e}, {:m}', v, v))  # -> 1.000000e+06, 1.000000e06

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接