method
extract_float
ruby latest stable - Class:
Scanf::FormatSpecifier
extract_float(s)private
No documentation available.
# 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