Найти - Пользователи
Полная версия: деление Float
Начало » Python для новичков » деление Float
1
borsovan
Здарова, товарищи Питонщики.
Столкнулся с проблемой.
Когда делю float число например 1.02105, на выходе получаю что то вроде 6.25e-05.
Понятно, что это цифра какая то но она совсем не читабельна.
Как это обойти?

doza_and
Никак это не обойти. Научиться читать такие цифры. Они такие во всех языках программирования см http://en.wikipedia.org/wiki/Scientific_notation.

p.s.
конечно можно в другом формате число напечатать, но это делать не надо.
1e-30 = 0.0000000000000000000000000000001
что из них более читаемо?
borsovan
doza_and
1e-30 = 0.0000000000000000000000000000001
что из них более читаемо?
Ну хоть так)
В отчетах же не напишешь такие 1e-30 цифры.
Как это на питоне написать чтоб конфертировал? окажите помощь друзья
Paranoia_Agent
borsovan
В отчетах же не напишешь
Как раз и напишешь:
1e-30 # Один на десять в минус тридцатой степени 
6.25e-05 # Шесть целых двадцать пять сотых на десять в минус пятой степени
bulgakov
если по-простому представь что e в числе 1e-30 это разделительный знак, точка или запятая, 30 это количество знаков на которое нужно сдвинуть этот разделительный знак чтобы получить число, а минус между 1е и 30 это направление порядка сдвига, если минус свдигать влево если плюс в право, итого получается что нам нужно сдвинуть запятую после единицы которая у нас представлена в виде буквы е на 30 знаков влево чтобы получить это число. Эта штука называется экспоненциальная запись. Читать про нее тут
borsovan
bulgakov
Эта штука называется экспоненциальная запись.
А можно как нибудь указать что бы не делал питон эту экспоненциальную запись?
Или скриптик готовый для перевода в не экспоненциальную запись.!

Проблема в том что некоторые числа он не переводит в экспоненциальную запись, а не которые переводит. Вот и получается в таблице неразбериха…

А люди которые будут смотреть эту таблицу скрее всего не поймут что это за экспоненциальная запись.
bulgakov
from decimal import Decimal
num1 = 3651684984
num2 = 55146554564654
print(Decimal(num1)/Decimal(num2))
borsovan
bulgakov
Получилось)) Спасибо большое!

Тему можно закрывать!
JOHN_16
рано закрывать - нормального ответа так и не последовало. для подобных задач необходимо использовать форматирование строк с помощью format:
>>> value=6.25e-05
>>> '{:f}'.format(value)
'0.000063'
format имеет широкие возможности, поэтому смотрите документацию. Использование Decimal в данном случае не требуется, decimal нужен совсем для другого
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB