New submission from Jorge Rojas <[email protected]>:
Hi all!
I have this case when trying to get a float value applying pack to these
integer values:
struct.unpack('f', struct.pack('HH', 0, 32704))
This happens when executing the unpack function to a float format, from a
bit-array where the sign bit is not in a suitable position I think. Applying
big-endian to the format, it returns a numeric value, but being little-endian
it returns a NaN.
> struct.unpack('<f', struct.pack('HH',0, 32704))
Out[168]: (nan,)
> struct.unpack('>f', struct.pack('HH',0, 32704))
Out[169]: (6.905458702346266e-41,)
The current documentation on struct.unpack doesn't anything about what
conditions a NaN is returned, besides this might be a expected value. Maybe
explaining how this value could be converted to an equivalent format to
retrieve the proper value may help, or why this returns a NaN and how to avoid
it.
Thanks in advance.
----------
components: Library (Lib)
messages: 400434
nosy: jrojas
priority: normal
severity: normal
status: open
title: struct.unpack() returns NaN
type: behavior
versions: Python 3.8
_______________________________________
Python tracker <[email protected]>
<https://bugs.python.org/issue45032>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com