python (python 3) の整数部分と小数部分を取得する最も効率的な方法は何Decimal
ですか?
これは私が今持っているものです:
from decimal import *
>>> divmod(Decimal('1.0000000000000003')*7,Decimal(1))
(Decimal('7'), Decimal('2.1E-15'))
どんな提案でも大歓迎です。
python (python 3) の整数部分と小数部分を取得する最も効率的な方法は何Decimal
ですか?
これは私が今持っているものです:
from decimal import *
>>> divmod(Decimal('1.0000000000000003')*7,Decimal(1))
(Decimal('7'), Decimal('2.1E-15'))
どんな提案でも大歓迎です。
使用することもできますmath.modf
(ドキュメント)
>>> math.modf(1.0000000000000003)
(2.220446049250313e-16, 1.0)
python2.7 -m timeit -s 'import math' 'math.modf(1.0000000000000003)'
1000000 loops, best of 3: 0.191 usec per loop
divmod
メソッド:
python2.7 -m timeit -s 'import decimal' 'divmod(decimal.Decimal(1.0000000000000003),decimal.Decimal(1))'
1000 loops, best of 3: 39.8 usec per loop
私はより効率的であると信じていますmath.modf
さらに簡単で効率的な方法は、文字列を整数に変換することだと思います。
>>>a = int(Decimal('1.0000000000000003'))
1
>>>python2.7 -m timeit -s 'import decimal' 'int(decimal.Decimal('1.0000000000000003'))'
10000 loops, best of 3: 11.2 usec per loop
小数部分を取得するには:
>>>int(Decimal('1.0000000000000003')) - a
3E-16