def string_to_float(s): """ Conversion of string to float. This version tries to only raise on invalid literals. Overflows should be converted to infinity whenever possible. Expects an unwrapped string and return an unwrapped float. """ s = strip_spaces(s) if not s: raise ParseStringError("empty string for float()") low = s.lower() if low == "-inf" or low == "-infinity": return -INFINITY elif low == "inf" or low == "+inf": return INFINITY elif low == "infinity" or low == "+infinity": return INFINITY elif low == "nan" or low == "+nan": return NAN elif low == "-nan": return -NAN try: return rstring_to_float(s) except ValueError: raise ParseStringError("invalid literal for float(): '%s'" % s)
def __init__(self, space, default): self.valid_default = False try: self.default = rffi.cast(self.c_type, rfloat.rstring_to_float(default)) self.valid_default = True except Exception: self.default = rffi.cast(self.c_type, 0.)
def __init__(self, space, default): self.valid_default = False try: fval = float(rfloat.rstring_to_float(default)) self.valid_default = True except Exception: fval = float(0.) self.default = rffi.cast(rffi.FLOAT, r_singlefloat(fval))
def __init__(self, space, default): self.valid_default = False try: # use float() instead of cast with r_longfloat fval = rffi.cast(rffi.DOUBLE, rfloat.rstring_to_float(default)) self.valid_default = True except Exception: fval = rffi.cast(rffi.DOUBLE, 0.) #self.default = r_longfloat(fval) self.default = fval
def ll_float(ll_str): from rpython.rtyper.annlowlevel import hlstr from rpython.rlib.rfloat import rstring_to_float s = hlstr(ll_str) assert s is not None n = len(s) beg = 0 while beg < n: if s[beg] == ' ': beg += 1 else: break if beg == n: raise ValueError end = n - 1 while end >= 0: if s[end] == ' ': end -= 1 else: break assert end >= 0 return rstring_to_float(s[beg:end + 1])
def llf(i): s = ['42.3', '123.4'][i] return rstring_to_float(s)
def __init__(self, space, default): if default: fval = float(rfloat.rstring_to_float(default)) else: fval = float(0.) self.default = r_longfloat(fval)
def __init__(self, space, default): if default: self.default = rffi.cast(self.c_type, rfloat.rstring_to_float(default)) else: self.default = rffi.cast(self.c_type, 0.)
def __init__(self, space, default): if default: fval = float(rfloat.rstring_to_float(default)) else: fval = float(0.) self.default = r_singlefloat(fval)
def func(x): if x == 0: s = '1e23' else: s = '-1e23' return rstring_to_float(s)
def load_float(loader): if readchr(loader) != TYPE_FLOAT: raise ValueError("expected a float") length = ord(readchr(loader)) s = readstr(loader, length) return rstring_to_float(s)