add support for < 8 byte floats

I haven't studied it for a long time, but from the spec it seemed reasonable to just pad with zeros for floats that are longer, since that'll just be a longer fractional part then.