'A float is written as 4 bytes.
The float is converted into a 32-bit integer using a method equivalent to
Java\'s floatToIntBits and then encoded in little-endian format.'

def write_float(self, datum):

    bits = STRUCT_INT.unpack(STRUCT_FLOAT.pack(datum))[0]
    self.write(chr((bits & 255)))
    self.write(chr(((bits >> 8) & 255)))
    self.write(chr(((bits >> 16) & 255)))
    self.write(chr(((bits >> 24) & 255)))
