math.log
Decimal(math.log(num,2))
你只是在转换结果时调用十进制
num
首先将数字转换为十进制实例,保持精度,然后使用其对数方法之一(为了可读性,在下面插入换行符):
In [22]: Decimal(num)
Out[22]: Decimal('810333333333333333253432343224234')
In [23]: Decimal(num).ln()
Out[23]: Decimal('75.77499847546938418941086142055648421904630259496362044
157156139031463040418047508186428539214239394')
In [24]: Decimal(num).ln().exp()
Out[24]: Decimal('810333333333333333253432343224234.0000000000000000000000
000000000000000000000000000000000000000000020')
In [25]: Decimal(num).ln() / Decimal(2).ln()
Out[25]: Decimal('109.32021452392844307936383214097698765413874994582696830
23528366628242511675596034347551786781907708')
In [26]: 2**(Decimal(num).ln() / Decimal(2).ln())
Out[26]: Decimal('810333333333333333253432343224233.999999999999999999999
9999999999999999999999999999999999999999999548')