python类Overflow()的实例源码

demjson.py 文件源码 项目:kodi-bandcamp 作者: wallon-ines 项目源码 文件源码 阅读 35 收藏 0 点赞 0 评论 0
def make_decimal( self, s, sign='+' ):
        """Converts a string into a decimal or float value."""
        if not decimal or self.float_type == NUMBER_FLOAT:
            return self.make_float( s, sign )

        if s.startswith('-') or s.startswith('+'):
            sign = s[0]
            s = s[1:]
        elif isinstance(sign, (int,long)):
            if sign < 0:
                sign = '-'
            else:
                sign = '+'

        try:
            f = self.decimal_context.create_decimal( s )
        except decimal.InvalidOperation:
            f = self.decimal_context.create_decimal( 'NaN' )
        except decimal.Overflow:
            if sign=='-':
                f = self.decimal_context.create_decimal( '-Infinity' )
            else:
                f = self.decimal_context.create_decimal( 'Infinity' )
        else:
            if sign=='-':
                f = f.copy_negate()
        return f


问题


面经


文章

微信
公众号

扫码关注公众号