Упаковка и распаковка бинарного поплавка в 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,)
Что происходит с лишними цифрами? Это ошибка округления? Как это работает?