shellon wrote: > I'm sorry I mistake the function name, the function is > floatToRawIntBits(), it convert ieee 754 floating point number to > integer, e.g. if f1>f2 then floatToRawBits(f1) > floatToRawBits(f1)
You can get the raw bits of a floating point number by packing into a string then unpacking it as an integer, but the invariant you give doesn't hold when you do that. That is, f1>f2 does not guarantee rawbits(f1)>rawbits(f2). So be warned. Python floats are double-precision internally, so the integer returned would have to hold at least 64-bits (i.e., it'd be a long on 32-bit platforms). import struct def double_to_raw_int(d): return struct.unpack("=q",struct.pack("=d",d)) > I want convert floating point number to sortable string to index in > Lucene, so I want first to conver the floating point number to integer > first, and than convert the integer to sortable string? I presume that, by "sortable string", you mean a numerical representation (padded or something), but if all you want is a string containing the bits of the number, struct.pack("=d",d) will get you an 8-byte string representing the bits without having to change it to an integer first. Check the documentation for the struct module if you need a certain endianness. > so How to convert a ieee 754 floating point to raw bits like the java > api floatToRawBits do? See documentation for the struct module. Carl Banks -- http://mail.python.org/mailman/listinfo/python-list