Моя цель - просто преобразовать строку типа «1.2» в научную нотацию без дополнительной точности.Проблема в том, что у меня всегда заканчиваются лишние 0 в конце моего вывода.
>>> input = "1.2"
>>> print '{:e}'.format(float(input))
1.200000e+00
Я пытаюсь выяснить, как получить просто 1.2e+00
.Я понимаю, что могу указать точность в своем утверждении формата, но я не хочу без необходимости обрезать более длинные строки.Я просто хочу подавить тренировку 0s.
Я пытался использовать Decimal.normalize (), который работает во всех случаях, кроме случаев, когда e <2. </p>
>>> print Decimal("1.2000e+4").normalize()
1.2E+4
>>> print Decimal("1.2000e+1").normalize()
12
Так что лучшеЗа исключением того, что я не хочу 12, я хочу 1.2e + 1.: P
Будем весьма благодарны за любые предложения!
Редактировать: Чтобы уточнить, входное значение уже было округлено до заданной длины, которая теперь неизвестна.Я пытаюсь избежать пересчета соответствующей точности форматирования.
По сути, у меня могут быть входные значения "1.23" и "1234.56", которые должны быть "1.23e + 0" и "1.23456e + 3".
У меня может бытьпросто проверить, какова длина входной строки, и использовать ее для указания точности вручную, но я хотел проверить и убедиться, что я просто не пропустил что-то, что могло бы просто предотвратить случайное добавление 0 в экспоненциальном формате.