Listing [Python.Docs]: struct - Interpret strings as packed binary data.
If the expected value out of (the beginning of) this contents is 98.6, @KennyOstrom's comment is correct, it's the byte order (buffer is encoded using big endian, while the default (for Intel / AMD processors - pc064) is little endian)).
I prepared a small example (used unpack_from as it offers more flexibility).
code00.py:
#!/usr/bin/env python
import struct
import sys
def main(*argv):
buf = b"@X\xa6fffff\x00\x00\x03\xe8\x01"
for fmt, desc in (
("d", "default"),
("<d", "little"),
(">d", "big"),
("@d", "native"),
):
print("{:s}: {:.3f}".format(desc, struct.unpack_from(fmt, buf, offset=0)[0]))
if __name__ == "__main__":
print("Python {:s} {:03d}bit on {:s}\n".format(" ".join(elem.strip() for elem in sys.version.split("\n")),
64 if sys.maxsize > 0x100000000 else 32, sys.platform))
rc = main(*sys.argv[1:])
print("\nDone.\n")
sys.exit(rc)
Output:
(py_pc064_03.10_test1_pycoral) [cfati@cfati-5510-0:/mnt/e/Work/Dev/StackExchange/StackOverflow/q075636237]> python code00.py
Python 3.10.7 (main, Sep 7 2022, 15:22:19) [GCC 9.4.0] 064bit on linux
default: 190359856752053127312676546256227168338472159449511832371070549056562920816076745060533362243045799043492106313588416013686785864748509740443321063342671014033379311055519472484045815808.000
little: 190359856752053127312676546256227168338472159449511832371070549056562920816076745060533362243045799043492106313588416013686785864748509740443321063342671014033379311055519472484045815808.000
big: 98.600
native: 190359856752053127312676546256227168338472159449511832371070549056562920816076745060533362243045799043492106313588416013686785864748509740443321063342671014033379311055519472484045815808.000
Done.
Might also be useful to check: