コード例 #1
0
ファイル: strutil.py プロジェクト: sota/pypy
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)
コード例 #2
0
ファイル: converter.py プロジェクト: xen0n/pypy
 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.)
コード例 #3
0
ファイル: converter.py プロジェクト: xen0n/pypy
 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))
コード例 #4
0
ファイル: converter.py プロジェクト: xen0n/pypy
 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
コード例 #5
0
ファイル: rstr.py プロジェクト: Mu-L/pypy
    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])
コード例 #6
0
ファイル: rstr.py プロジェクト: charred/pypy
    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])
コード例 #7
0
 def llf(i):
     s = ['42.3', '123.4'][i]
     return rstring_to_float(s)
コード例 #8
0
 def __init__(self, space, default):
     if default:
         fval = float(rfloat.rstring_to_float(default))
     else:
         fval = float(0.)
     self.default = r_longfloat(fval)
コード例 #9
0
 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.)
コード例 #10
0
ファイル: converter.py プロジェクト: Darriall/pypy
 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.)
コード例 #11
0
ファイル: converter.py プロジェクト: Darriall/pypy
 def __init__(self, space, default):
     if default:
         fval = float(rfloat.rstring_to_float(default))
     else:
         fval = float(0.)
     self.default = r_singlefloat(fval)
コード例 #12
0
ファイル: test_rfloat.py プロジェクト: charred/pypy
 def func(x):
     if x == 0:
         s = '1e23'
     else:
         s = '-1e23'
     return rstring_to_float(s)
コード例 #13
0
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)
コード例 #14
0
ファイル: test_rfloat.py プロジェクト: zcxowwww/pypy
 def func(x):
     if x == 0:
         s = '1e23'
     else:
         s = '-1e23'
     return rstring_to_float(s)
コード例 #15
0
ファイル: rmarshal.py プロジェクト: Darriall/pypy
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)