Flowdock
extract_float(s) private

No documentation

This method has no description. You can help the Ruby community by adding new notes.

Hide source
# File lib/scanf.rb, line 312
    def extract_float(s)
      return nil unless s &&! skip
      if /\A(?<sign>[-+]?)0[xX](?<frac>\.\h+|\h+(?:\.\h*)?)[pP](?<exp>[-+]\d+)/ =~ s
        f1, f2 = frac.split('.')
        f = f1.hex
        if f2
          len = f2.length
          if len > 0
            f += f2.hex / (16.0 ** len)
          end
        end
        (sign == -- ? -1 : 1) * Math.ldexp(f, exp.to_i)
      else
        s.to_f
      end
    end
Register or log in to add new notes.