在2.6版之前的Python中,它不能被移植;它需要sys.float_info中的信息,这在Python 2.6中是新的。
如果你想做非移植性的,即为你的特定平台,你需要查看用于产生你的 2.4/5 Python 的 C 编译器的
float.h
文件,或者查看你的平台上由 2.6 或 2.7 实现返回的 sys.float_info (并且相信它适用于你的 2.4/5 Python)。然后你需要查看 Python 源文件 (Objects/floatobject.c) 中的
float_hex
函数,将其翻译成 Python 并进行测试 (也许是针对 2.6/7 Python)。
这似乎是一个很大的工作,为了什么?你的目标是什么?你想做什么,用
repr(your_float)
不能实现的?
Edit
:需要一个独特的标识符
请注意,time.time()并不是非常精确。
time.time()
将时间以浮点数的形式返回,以UTC为单位,表示自纪元以来的秒数。请注意,尽管时间总是以浮点数形式返回,但并非所有系统都提供比1秒更精确的时间。虽然这个函数通常返回非递减值,但如果系统时钟在两次调用之间被调回,它可能会返回一个比前一次调用更低的值。
允许高达十亿分之一秒的分辨率。
>>> hex(int(time.time() * 1000000000))
'0x11ef11c41cf98b00L'
这样就够了吗?