Форум сайта python.su
Здарова, товарищи Питонщики.
Столкнулся с проблемой.
Когда делю float число например 1.02105, на выходе получаю что то вроде 6.25e-05.
Понятно, что это цифра какая то но она совсем не читабельна.
Как это обойти?
Отредактировано borsovan (Фев. 12, 2015 18:41:51)
Офлайн
253
Никак это не обойти. Научиться читать такие цифры. Они такие во всех языках программирования см http://en.wikipedia.org/wiki/Scientific_notation.
p.s.
конечно можно в другом формате число напечатать, но это делать не надо.
1e-30 = 0.0000000000000000000000000000001
что из них более читаемо?
Отредактировано doza_and (Фев. 12, 2015 19:50:16)
Офлайн
doza_andНу хоть так)
1e-30 = 0.0000000000000000000000000000001
что из них более читаемо?
Офлайн
5
borsovanКак раз и напишешь:
В отчетах же не напишешь
1e-30 # Один на десять в минус тридцатой степени 6.25e-05 # Шесть целых двадцать пять сотых на десять в минус пятой степени
Офлайн
1
если по-простому представь что e в числе 1e-30 это разделительный знак, точка или запятая, 30 это количество знаков на которое нужно сдвинуть этот разделительный знак чтобы получить число, а минус между 1е и 30 это направление порядка сдвига, если минус свдигать влево если плюс в право, итого получается что нам нужно сдвинуть запятую после единицы которая у нас представлена в виде буквы е на 30 знаков влево чтобы получить это число. Эта штука называется экспоненциальная запись. Читать про нее тут
Офлайн
bulgakovА можно как нибудь указать что бы не делал питон эту экспоненциальную запись?
Эта штука называется экспоненциальная запись.
Отредактировано borsovan (Фев. 12, 2015 21:05:56)
Офлайн
1
from decimal import Decimal num1 = 3651684984 num2 = 55146554564654 print(Decimal(num1)/Decimal(num2))
Офлайн
bulgakovПолучилось)) Спасибо большое!
Офлайн
221
рано закрывать - нормального ответа так и не последовало. для подобных задач необходимо использовать форматирование строк с помощью format:
>>> value=6.25e-05 >>> '{:f}'.format(value) '0.000063'
Офлайн