Назначить научную нотацию переменной в Python


Я пытаюсь попросить переменную с плавающей точкой, затем присвоить ей научную нотацию и затем использовать эту нотацию в следующих операциях. Например, я хочу, чтобы программа действительно работала с нотацией, а не просто возвращала результаты в ней. Мне удалось преобразовать переменную с помощью функции print:

def estim(abs(x)):
    a=print("{:.3e}".format(x))
    return a

Однако это на самом деле не придает научной ценности x. я тогда попытался

b=float(a)

Но a-это тип None, поэтому он не работает. Помощь есть?

Edit: by scientific обозначение я имею в виду X. YYYe+Z, пример: 31234.34234 - > 3.12 e+04

3 2

3 ответа:

Если вы сделаете "{:.3e}".format(x), то получите 3 цифры после запятой, то есть

>>> a = 31234.34234
>>> "{:.3e}".format(a)
'3.123e+04'
Чтобы получить то, что вы хотите, вам нужно сделать "{:.2e}".format(x).
>>> "{:.2e}".format(a)
'3.12e+04'
>>> float("{:.2e}".format(a))
31200.0

Преобразование его обратно в float даст вам исходное значение

Как функция

def estim(x):
    x = abs(x)
    a=("{:.2e}".format(x))
    print(a)
    return a

Совет:

Вы можете использовать % (это может быть устаревшим)

>>> a = 31234.34234
>>> "%e"%a
'3.123434e+04'

Вам нужно использовать a="{:.3e}".format(x)

Вот пример

x=246789;
a="{:.3e}".format(x);
print a;
print float(a);

Вывод

2.468e+05
246800.0

Возвращаемое значение из печати всегда Нет я подозреваю, что вам нужно больше по строкам:

def estim(x):
    a="{:.3e}".format(abs(x))
    print a
    return a