Маэстро,
попробуйте библиотеки для работы с большими числами например <script src="http://www.leemon.com/crypto/BigInt.js"></script> <script> var big1 = str2bigInt('999999999999999999999999999', 10, 0); big2 = str2bigInt('1000000', 10, 0), big3 = mult(big1, big2); // умножаем alert(bigInt2str(big3, 10)); </script> |
Цитата:
Но, библиотека - лишние 50 KByte, а главное, что к сожалению Ваш пример на тест '999999999999999999999999999' возвращает '999999999999999999999999999000000' (с лишними нулями). Возможно надо попробовать брать длину исходной строки и после преобразования обрезать длину результирующей строки до длины исходной. Однако есть и другие неприятности, например реакция на всякие undefined, null, NaN,... Думаю, что следует пойти по следующему пути в два шага: 1. преобразовать входную величину x в строку. 2. проверить с помощью regexp.test() наличие в x только символов цифр (0...1). При наличии только символов цифр оставить исходную строку без изменений, в противном случае присвоить ей '0'. |
Цитата:
я умножил '999999999999999999999999999' на 1000000 чтобы продемонстрировать операции с большими числами |
Pavel M., да, простите, я сначала это видел, а потом чем-то отвлекся и на момент тестирования Вашей функции уже забыл ;)
|
Цитата:
Цитата:
|
Часовой пояс GMT +3, время: 00:38. |