title: Packing and Unpacking binary float in python
body: <p>I am having some trouble with packing and unpacking of binary floats in python when doing a binary file write. Here is what I have done:</p>
  
  <pre><code>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()
  </code></pre>
  
  <p>The result I get is the following:</p>
  
  <pre><code>(1.2345600128173828,)
  </code></pre>
  
  <p>What is going on with the extra digits? Is this a rounding error? How does this work?</p>