Это не проблема с Math.sqrt
- избавьтесь от вызова Math.sqrt
, и вы все еще увидите бесконечность.По сути, Javascript не может справиться с такими большими числами - он выходит за пределы диапазона 64-битных значений IEEE 754 с плавающей запятой.Вам нужно будет найти какую-то библиотеку для обработки целых чисел произвольного размера.
Обратите внимание, что даже для чисел, меньших 10 309 , вы все равно будете терять информацию послепервые ~ 15 цифр.Если вам небезразличны все эти цифры, вам снова следует обратиться к специализированным математическим библиотекам.
При быстром просмотре веб-страниц найдены ссылки BigInt.js
, но я нене знаю, как это хорошо.