Python has a brilliant decimal module (http://docs.python.org/library/decimal.html) you may need if you want to avoid floating point errors. This may be necessary if you are faced with compounding errors under special circumstances e.g. if testing a statistical routine against a purpose-built test dataset (e.g. http://www.itl.nist.gov/div898/strd/anova/SmLs09_cv.html). The performance hit is substantial, however, so it has to be used judiciously. Anyway, here is an example:

`import decimal`

D = decimal.Decimal

decimal.getcontext().prec = 120

d1 = D("1.1")

f1 = 1.1

print "Decimal result is: %s" % round((d1**1000 - D("2.46993291801e+41")),3)

print "Floating point result is: %s" % round((f1**1000 - 2.46993291801e+41),3)

>>>

Decimal result is: -4.17366587591e+29

Floating point result is: -3.97456123863e+29

Usually, floating point is good enough – but not under all circumstances. In which case, it pays to be familiar with the decimal module.