Decimal is a python library that allows for more precise decimals, without a
large amount of floating point errors.
from decimal import *
getcontext().prec = n
The above line let''s you change the precision of the decimal.
i.e.
getcontext().prec = 6
print(Decimal(1) / Decimal(7))
Decimal('0.142857')
You can see that it has 6 digits of prescision.
There are useful functions,
.log10
.sqrt
.exp
.ln
First, Decimal(x).log10 returns log10(x).
I.e.
print(Decimal(100).log10)
2
Then, Decimal(x).sqrt returns the square root of a number (duh).
Returns the square root of a number
getcontext().prec = 28
Decimal(2).sqrt()
Decimal('1.414213562373095048801688724')
Then .exp is the natural anti-lograthm (natural lograthm is loge(x), where is
e is Euler''s (say Oiler''s) constant, or 2.718...
Since exponentiation is the opposite of lograthms,
Decimal(x).exp = e**x
getcontext().prec = 3
Decimal(1).exp()
Decimal('2.718')
Finally, .ln is the natural lograthm, or loge(x) .
For more info check out
https://docs.python.org/3/library/decimal.html
.