Научная запись без знака плюс - PullRequest
0 голосов
/ 11 июля 2019

Функция '{:e}'.format выводит положительные значения в форме "1e + 06".

Есть ли другой формат, который вместо этого отображает его как "1e6" (а отрицательные показатели, очевидно, как "1e-6")?

Или может потребоваться функция пользовательского формата?

1 Ответ

2 голосов
/ 12 июля 2019

Вы можете получить свой собственный 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...