Интересный случай.Использование питонов Decimal
дает тот же результат, что и указанная вами ссылка, но использование float
или math.sqrt()
, похоже, дает другой результат.
>>> from decimal import Decimal
>>> '{:.25f}'.format(2**0.5) # Result 1
'1.4142135623730951454746219'
>>> '{:.25f}'.format(math.sqrt(2)) # Result 1
'1.4142135623730951454746219'
>>> '{:.25f}'.format(math.sqrt(Decimal('2'))) # Result 1
'1.4142135623730951454746219'
>>> '{:.25f}'.format(Decimal('2') ** Decimal('0.5')) # Result 2
'1.4142135623730950488016887'
# The reference you listed # Result 2
'1.4142135623730950488016887'
Ваша библиотека, вероятно, использует float
для внутреннего использования..
Но я думаю, что это нормально и НЕ является ошибкой, поскольку float
s не должны быть точными на 100%;они предназначены для быстрой работы на машине.