Это невозможно сделать в Python до версии 2.6;ему нужна информация в sys.float_info, которая является новой в Python 2.6.
Если вы хотите сделать это не переносимым, то есть для вашей конкретной платформы, вам нужно будет посмотреть файл float.h
длякомпилятор C, который использовался для создания вашего Python 2.4 / 5, или в sys.float_info, возвращенном реализацией 2.6 или 2.7 на вашей платформе (и верьте, что он применим к вашему Python 2.4 / 5).Затем вам нужно будет взглянуть на функцию float_hex
в исходном коде Python (Objects / floatobject.c) и перевести ее на Python и протестировать ее (возможно, на Python 2.6 / 7).
Это кажетсянравится много работы, для чего?Какова ваша цель?Что вы хотите сделать, чего нельзя достичь с помощью repr(your_float)
?
Редактировать : нужен уникальный идентификатор
Обратите внимание, что time.time ()не очень точно:
"" "time.time () Возвращает время в виде числа с плавающей запятой, выраженного в секундах с начала эпохи в UTC. Обратите внимание, что, хотя время всегда возвращается как число с плавающей запятойНе все системы предоставляют время с точностью, превышающей 1 секунду. Хотя эта функция обычно возвращает неубывающие значения, она может возвращать более низкое значение, чем предыдущий вызов, если между двумя вызовами установлены системные часы. "" "
Разрешение с точностью до миллиардной доли секунды:
>>> hex(int(time.time() * 1000000000))
'0x11ef11c41cf98b00L'
>>>
Это достаточно хорошо?