Тип данных float
имеет ограничение на точность, которую вы можете получить. Примерно 50 цифр.
Я рекомендую использовать Decimal
вместо того, чтобы представлять числа с такой высокой точностью:
>>> from decimal import Decimal
>>> d = Decimal('3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460955058223172535940812848111745028410270938521105559644622948954930381964428')
>>> format(d, ".50f")
'3.14159265358979323846264338327950288419716939937511'
>>> format(d, ".204f")
'3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128481117450284102709385211055596446229489549303819644280'
Таким образом, вы можете выполнять математические операции без потери точности, что «рассматривать его как строку» не позволяет вам.