این ماژول یک ماژول کوچک و بسیار کاربردی برای محاسبات دقیق اعشاری در پایتون می باشد که دارای مجموعه ی گسترده ای از توابع است.

همانطور که احتمالا مشاهده کرده اید در برخی از محاسبات اعشاری در پایتون۳ با مشکل اعشارهای بسیار کوچک بر میخوریم(که این مشکل مربوط به ساختار داخلی پایتون۳ می باشد) و رها شدن از این وضعیت خود مستلزم استفاده از نوع داده ی دیگری است که این مسئله را می توان با ماژول
(MPMath - multiprecision math)
بر طرف نمود.
این ماژول قابلیت اتصال و بهره مندی از توابع ماژول NumPy را نیز دارد.
 
  • نمونه اشکال :
>>> 0.1 + 0.2
0.30000000000000004
>>> sum([.1] * 10)
0.9999999999999999	
>>> exp(1e-5) - 1  # gives result accurate to 11 places
1.0000050000069649e-05	
 
 
این ماژول بر روی سرورهای گوگل کد قرار داشته و لینک مربوط به آن برای IPهای کشور ایران قابل دسترس نیست.
 
حجم: 659 کیلوبایت
توضیحات: نسخه قابل کامپایل برای تمام ورژن های پایتون ۳۲ بیتی در ویندوز
 
 
 
mpmath-all-0.17.tar.gz
حجم: 1.99 مگابایت
توضیحات: سورس قابل کامپایل برای تمام ورژن های پایتون
 
 
  • نمونه کدهای این ماژول
from mpmath import *
mp.dps = 5; mp.pretty = True #mpmath Options

a = mpf(.1+.2)
print(a) 
print("\nafter use mpf all related calcs is mp:")
print(a + .4)

  • خروجی
>>> 
0.3

after use mpf all related calcs is mp:
0.7

دقت داشته اشید که در این روش محاسبات با نمایش مخصوص mpmath انجام خواهند شد و ساختمان داده های جدید استفاده می شوند.

>>> mp.pretty = False
>>> a + .4
mpf('0.69999981')
>>> from math import *
>>> mp.pretty = True
>>> a + sin(pi)
0.3

همچنین از این ماژول می توان برای داده های مختلط نیز استفاده کرد.

>>> mp.pretty = False
>>> mpc(.1 + .3j)
mpc(real='0.10000002', imag='0.30000019')
>>> mp.pretty = True
>>> mpc(.1 + .3j)
(0.1 + 0.3j)
>>> mpc(.1 + .3j) + .3 - .2j
(0.4 + 0.1j)