Принудительное «общее» форматирование строк в Python для низких показателей - PullRequest
0 голосов
/ 28 августа 2018

Общее форматирование в Python округляет число до p значащих цифр и печатает в виде числа с плавающей точкой (%f), если показатель степени exp находится между -4 <= exp < p, в противном случае он печатается в научном показателе запись (%e). Например:

> '{0:0.8G}'.format(10000000)
'10000000'
> '{0:0.8G}'.format(0.000001)
'1E-06'

Почему это условие позволяет только указать точность верхнего предела экспоненты, тогда как нижний предел экспоненты зафиксирован на -4? Есть ли способ заставить форматирование строки печатать полное число для младших показателей?

1 Ответ

0 голосов
/ 28 августа 2018

Есть ли способ заставить форматирование строки печатать полный номер для низких показателей?

Нет способа принудительно G всегда форматировать с использованием записи с фиксированной точкой, но вы можете использовать f с пользовательской точностью в сочетании с .rstrip():

>>> '{:.10f}'.format(0.0000000001)
'0.0000000001'
>>> '{:.10f}'.format(0.00001).rstrip('0')  # remove trailing zeros
'0.00001'
>>> '{:.10f}'.format(1000).rstrip('0').rstrip('.')  # remove trailing zeros and '.'
'1000'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...