JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrB A[ @sDdZddlmZmZmZddlmZmZd ddZddZ dgZ dS) zD ``python-future``: pure Python implementation of Python 3 round(). )PYPYPY26 bind_method)DecimalROUND_HALF_EVENNcCsd}|dkrd}d}t|dr(||S|dkr8tdtd| }trbdtt|krbt|}ts|t |j |t d }nt |j |t d }|rt |St|SdS) a See Python 3 documentation: uses Banker's Rounding. Delegates to the __round__ method if for some reason this exists. If not, rounds a number to a given precision in decimal digits (default 0 digits). This returns an int when called with one argument, otherwise the same type as the number. ndigits may be negative. See the test_round method in future/tests/test_builtins.py for examples. FNTr __round__z"negative ndigits not supported yet10numpy)Zrounding)hasattrrNotImplementedErrorrrreprtypefloatrZ from_floatZquantizer from_float_26int)numberndigitsZ return_intexponentdrI/opt/alt/python37/lib/python3.7/site-packages/future/builtins/newround.pynewround s&     rc Csddl}ddlm}t|ttfr*t|S||s>||rJtt |S| d|dkr`d}nd}t | \}}dd}||d}||t |d|| }|S) aConverts a float to a decimal number, exactly. Note that Decimal.from_float(0.1) is not the same as Decimal('0.1'). Since 0.1 is not exactly representable in binary floating point, the value is stored as the nearest representable value which is 0x1.999999999999ap-4. The exact equivalent of the value in decimal is 0.1000000000000000055511151231257827021181583404541015625. >>> Decimal.from_float(0.1) Decimal('0.1000000000000000055511151231257827021181583404541015625') >>> Decimal.from_float(float('nan')) Decimal('NaN') >>> Decimal.from_float(float('inf')) Decimal('Infinity') >>> Decimal.from_float(-float('inf')) Decimal('-Infinity') >>> Decimal.from_float(-0.0) Decimal('-0') rN)_dec_from_tripleg?cSs$|dkrttt|dSdSdS)Nr)lenbinabs)rrrr bit_lengthYsz!from_float_26..bit_length)mathdecimalr isinstancerlongrisinfisnanr copysignras_integer_ratiostr) fZ_mathrsignnrrkresultrrrr7s   r)N) __doc__Z future.utilsrrrr!rrrr__all__rrrrs  +,