我在执行二进制文件写入时在python中打包和解压二进制浮点数时遇到了一些麻烦。下面是我做了什么:在python中打包和解压缩二进制浮点数
import struct
f = open('file.bin', 'wb')
value = 1.23456
data = struct.pack('f',value)
f.write(data)
f.close()
f = open('file.bin', 'rb')
print struct.unpack('f',f.read(4))
f.close()
结果我得到的是以下几点:
(1.2345600128173828,)
这是怎么回事与额外的数字?这是一个舍入错误?这个怎么用?
是的,浮点数本质上是不精确的。 – 2013-04-23 09:16:35
有关完整* why *的信息,请参阅[每位计算机科学家应了解的浮点算术知识](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html)。 – 2013-04-23 09:17:12
您遇到的Python教程[总结表示问题](http://docs.python.org/2/tutorial/floatingpoint.html#representation-error)。 – 2013-04-23 09:20:28