#python
#python
Вопрос:
Я создаю калькулятор для вычисления некоторых вычислений, связанных с химией. Таким образом, большинство результатов будут иметь чрезвычайно малые значения.
Примером результата является 4.840909814726882e-09
.
Как мне отобразить это значение в формате, подобном 4.84 x 10^(-9)
?
Комментарии:
1.
format(num, '.2e')
будет генерироваться4.84e-09
, что не совсем то, что вы хотите, но становится все ближе.2.
f'{str(a)[:4]} x 10^({str(a)[-3:]})'
может работать
Ответ №1:
попробуйте это:
format(4.840909814726882e-09, '.2e').replace('e', ' x 10^(') ')'
Вывод:
4.84 x 10^(-09)
Это не совсем тот результат, который вы хотели, но это просто.
Также есть:
def my_format(num):
s = format(num, '.2e')
base, exp = s.split('e')
return f'{base} x 10^({int(exp)})'
Вывод:
>>> my_format(4.840909814726882e-09)
'4.84 x 10^(-9)'
что более сложно, но это именно тот результат, который вы хотели.
Ответ №2:
Как мне отобразить значение в формате, подобном 4,84 x 10 ^ (-9)?
Вручную, это не формат, поддерживаемый Python.
Хотя, если вы просто хотите «округлить» число, потому что у вас нет и не нужно 15 значащих цифр, тогда вы можете использовать спецификаторы формата и либо g
тип представления:
>>> format(v, 'g')
'4.84091e-09'
или явная точность:
>>> format(v, '.3')
'4.84e-09'
Комментарии:
1. Это довольно явно указано в ответе?
2. OP использует формулировку «формат, подобный x», неясно, хотят ли они этого точного форматирования или просто хотят избежать совершенно ненужной точности форматирования по умолчанию. Я предположил, что последнее может или будет полезно, учитывая, что Python может легко сгенерировать его изначально.
3. Я уже пробовал ваш метод раньше, но я хочу отформатировать его до 4,84 x 10 ^ (-9)