Преобразовать научную нотацию в десятичную — python

#python-3.x #decimal

#python #научная нотация #преобразование с плавающей запятой

Вопрос:

Как преобразовать научную нотацию в число с плавающей запятой? Вот пример того, чего я хочу избежать:

 Python 2.7.3 (default, Apr 14 2012, 08:58:41) [GCC] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a=[78.40816326530613, 245068094.16326532]
>>> print a[0]/a[1]
3.19944395589e-07
>>> print float(a[0]/a[1])
3.19944395589e-07
>>> print float(a[0])/float(a[1])
3.19944395589e-07
 

Ответ №1:

Используйте форматирование строк:

 >>> "{:.50f}".format(float(a[0]/a[1]))
'0.00000031994439558937568872208504280885144055446290'
 

Комментарии:

1. Спасибо за ваш ответ. Как указать целочисленную часть?

Ответ №2:

Научная нотация — это просто удобный способ печати числа с плавающей запятой. Когда есть много начальных нулей, как в вашем примере, научную нотацию может быть легче читать.

Чтобы напечатать определенное количество цифр после запятой, вы можете указать строку формата с помощью print:

 print 'Number is: %.8f' % (float(a[0]/a[1]))
 

Или вы можете использовать format() , как в других ответах.

Ответ №3:

Это уже число с плавающей запятой, оно просто печатается в удобном формате. Если вы хотите отобразить определенное количество знаков после запятой при печати, используйте format :

 >>> print format(a[0]/a[1], '.65f')
0.00000031994439558937568872208504280885144055446289712563157081604