# File lib/innodb/data_type.rb, line 114
    def value(data)
      # Strings representing the integral and fractional parts.
      intg, frac = "", ""

      stream = StringIO.new(data)
      mask = sign_mask(stream)

      intg << get_digits(stream, mask, @comp_integral)

      (1 .. @uncomp_integral).each do
        intg << get_digits(stream, mask, MAX_DIGITS_PER_INTEGER)
      end

      (1 .. @uncomp_fractional).each do
        frac << get_digits(stream, mask, MAX_DIGITS_PER_INTEGER)
      end

      frac << get_digits(stream, mask, @comp_fractional)

      # Convert to something resembling a string representation.
      str = mask.to_s.chop + intg + '.' + frac

      BigDecimal.new(str).to_s('F')
    end