/usr/local/lib/python3.9/site-packages/future/builtins/__pycache__
Edit: /usr/local/lib/python3.9/site-packages/future/builtins/__pycache__/newround.cpython-39.pyc (2786B)
a
^Egv @ sP d Z ddlmZ ddlmZmZmZ ddlmZm Z d
ddZ
dd ZdgZdS )zD
``python-future``: pure Python implementation of Python 3 round().
)division)PYPYPY26bind_method)DecimalROUND_HALF_EVENNc C s d}|du rd}d}t | dr(| |S td| }dtt| v rNt| } t| tr^| }ntsnt| }nt | }|dk rt
|| | }n|j|td}|rt
|S t|S dS ) 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__10Znumpy)rounding)hasattrr r reprtypefloat
isinstancer
from_float
from_float_26newroundquantizer int)numberndigitsZ
return_intexponentdresult r B/usr/local/lib/python3.9/site-packages/future/builtins/newround.pyr
s(
r c C s ddl }ddlm} t| ttfr*t| S || s>|| rJtt | S |
d| dkr`d}nd}t| \}}dd }||d }||t
|d| | }|S ) a Converts 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')
r N)_dec_from_tripleg ? c S s$ | dkrt tt| d S dS d S )Nr )lenbinabs)r r r r
bit_length_ s z!from_float_26.
.bit_length )mathdecimalr r r longr isinfisnanr copysignr! as_integer_ratiostr) fZ_mathr signnr r" kr r r r r = s r )N)
__doc__
__future__r Zfuture.utilsr r r r% r r r r __all__r r r r s
0,