Недавно я обнаружил, что x**.5
и math.sqrt(x)
не всегда дают одинаковый результат в Python:
Python 2.6.1 (r261:67517, Dec 4 2008, 16:51:00) [MSC v.1500 32 bit (Intel)]
on win32
>>> 8885558**.5 - math.sqrt(8885558)
-4.5474735088646412e-13
Проверяя все целые числа ниже 10 ** 7, два метода дали разные результаты почти для 0,1% образцов, причем размер ошибки увеличивается (медленно) для больших чисел.
Итак, вопрос в том, какой метод более точен?