Маэстро,
попробуйте библиотеки для работы с большими числами например
<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, время: 04:49. |