преобразуйте экспоненциал в десятичное число в Python

Я поместил открытый интерфейс сначала, но я не всегда делал это. Я раньше делал вещи назад к этому, с частным, затем защищенным, затем общественность. Оглядывание назад, это не имело много смысла.

Как разработчик класса, Вы, вероятно, хорошо познакомитесь с его "внутренностями", но пользователи класса не очень заботятся, или по крайней мере они не были должны. Они главным образом интересуются тем, что класс может сделать для них, правильно?

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

я никогда не использую несколько общедоступных/защищать/частных разделов - слишком сбивающий с толку для следования, по-моему.

6
задан randomThought 15 October 2009 в 15:32
поделиться

3 ответа

Я полагаю, что у вас есть список, а не массив, но здесь это не имеет большого значения; в 2.6 и более ранних версиях Python, что-то вроде:

>>> L = [2.32313e+07, 2.1155e+07, 1.923e+07, 11856, 112.32]
>>> for x in L: print '%f' % x
... 
23231300.000000
21155000.000000
19230000.000000
11856.000000
112.320000

, а в 2.6 или более поздних версиях - метод .format . Я полагаю, вы знаете, что числа сами по себе, как числа, не имеют никакого «формата» - это строки , которые вы получаете, форматируя числа, например для вывода, которые находятся в каком-то формате. Кстати, варианты этого % f могут позволить вам контролировать количество знаков после запятой, ширину, выравнивание и т. Д. - трудно предложить именно то, что вы можете захотеть, без дополнительных спецификаций от вас.

В awk,

5
ответ дан 17 December 2019 в 02:30
поделиться

В ответ на последнюю часть вашего вопроса: awk может использовать тот же формат printf :

awk '{printf "%f\n",$1}' exponential_file

Где exponential_file содержит:

2.32313e+07
2.1155e+07
1.923e+07
11856
112.32

Вы можете преобразовать в переменная для использования в дальнейшем. Вот упрощенный пример:

awk '{n = sprintf("%f\n",$1); print n * 2}' exponential_file
0
ответ дан 17 December 2019 в 02:30
поделиться

Вы можете использовать locale.format () для форматирования чисел для вывода. Это дает дополнительное преимущество в том, что оно согласуется с любыми соглашениями для конкретной локали, которые можно ожидать при представлении чисел. Если вам нужен полный контроль в определенном месте, где вы делаете вывод, вам лучше использовать print "format"% vars ... вариант .

Пример:

>>> import locale 
>>> locale.setlocale(locale.LC_ALL, "")
'C/UTF-8/C/C/C/C'
>>> locale.format("%f", 2.32313e+07, 1)
'23231300.000000'
]
1
ответ дан 17 December 2019 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: