Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 5, 2018 10:29:11

SergeyChmutov
Зарегистрирован: 2017-08-04
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование числа Эйлера в int

У меня есть значение адреса сигнала, выраженное через основание натурального логарифма. Как преобразовать 2.83491541e-309 в фактический int?

Офлайн

#2 Сен. 11, 2018 21:33:48

DamMercul
Зарегистрирован: 2017-11-26
Сообщения: 325
Репутация: +  13  -
Профиль   Отправить e-mail  

Преобразование числа Эйлера в int

 int(float(your_num))
Что-то я лишнее намудрил в оригинале
P.S. your_num - твое это число в строке



____________________________________________________

 # Life loop
while alive:
    if (fun > boredom) and money:
        pass_day(fun, boredom, money)
        continue
    else: break

Отредактировано DamMercul (Сен. 11, 2018 21:38:24)

Офлайн

#3 Сен. 13, 2018 10:11:37

SergeyChmutov
Зарегистрирован: 2017-08-04
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование числа Эйлера в int

В общем я разбирался в этом вопросе, оказалось совсем не так, как я описал. В базе хранится значение 2.83491541e-309, специфичным софтом для этой базы я могу выгрузить это поле либо в dec либо hex.
В dec формате значение 7039485333511, а в hex 000006670205D007. Судя по всему в БД происходит запись побитового представления числа hex. Иначе число 2.83491541e-309 фактически 0.
Как можно реализовать на питоне представление этого float в dec или hex.

Офлайн

#4 Сен. 13, 2018 23:29:11

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Преобразование числа Эйлера в int

SergeyChmutov
Судя по всему в БД происходит запись побитового представления числа hex
 import ctypes as ct
class UU(ct.Union):
    _fields_ = [("i", ct.c_uint64),
                ("f", ct.c_double)]
a=UU()
>>> a.i=7039485333511
>>> a.f
3.477967867691e-311

Как оно связано с вашим числом 2.83491541e-309 неизвестно. Если вы приведете несколько тысяч примеров, то, возможно, это можно будет понять.



Офлайн

#5 Сен. 14, 2018 10:36:05

SergeyChmutov
Зарегистрирован: 2017-08-04
Сообщения: 50
Репутация: +  0  -
Профиль   Отправить e-mail  

Преобразование числа Эйлера в int

doza_and
Как оно связано с вашим числом 2.83491541e-309 неизвестно. Если вы приведете несколько тысяч примеров, то, возможно, это можно будет понять.
Да, вероятно этим я ввел кого-то в заблуждение. Я точно не помнил, значение какого поля указал в посте, и импортировал не его. Поэтому и вышла разница в значениях.

doza_and, спасибо за подсказку

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version