code: public float unpackFloat()
              throws IOException
      {
          byte b = readByte();
          switch (b) {
              case Code.FLOAT32: // float
                  float fv = readFloat();
                  return fv;
              case Code.FLOAT64: // double
                  double dv = readDouble();
                  return (float) dv;
          }
          throw unexpected("Float", b);
      }
docs: Reads a float.
  
  This method rounds value to the range of float when precision of the read value is larger than the range of float. This may happen when {@link #getNextFormat()} returns FLOAT64.
  
  @return the read value
  @throws MessageTypeException when value is not MessagePack Float type
  @throws IOException when underlying input throws IOException