Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 11.04.2012, 11:36
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Маэстро,
попробуйте библиотеки для работы с большими числами
например
<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>
Ответить с цитированием
  #12 (permalink)  
Старый 11.04.2012, 12:01
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от Pavel M. Посмотреть сообщение
попробуйте библиотеки для работы с большими числами
За информацию о библиотеке спасибо. Никогда не пользовался.

Но, библиотека - лишние 50 KByte, а главное, что к сожалению Ваш пример на тест
'999999999999999999999999999'
возвращает
'999999999999999999999999999000000' (с лишними нулями).
Возможно надо попробовать брать длину исходной строки и после преобразования обрезать длину результирующей строки до длины исходной.
Однако есть и другие неприятности, например реакция на всякие undefined, null, NaN,...

Думаю, что следует пойти по следующему пути в два шага:
1. преобразовать входную величину x в строку.
2. проверить с помощью regexp.test() наличие в x только символов цифр (0...1). При наличии только символов цифр оставить исходную строку без изменений, в противном случае присвоить ей '0'.
Ответить с цитированием
  #13 (permalink)  
Старый 11.04.2012, 12:04
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

Сообщение от Маэстро
а главное, что к сожалению Ваш пример на тест
'999999999999999999999999999'
возвращает
'999999999999999999999999999000000' (с лишними нулями).
смотрите внимательно код
я умножил '999999999999999999999999999' на 1000000
чтобы продемонстрировать операции с большими числами
Ответить с цитированием
  #14 (permalink)  
Старый 11.04.2012, 12:45
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Pavel M., да, простите, я сначала это видел, а потом чем-то отвлекся и на момент тестирования Вашей функции уже забыл
Ответить с цитированием
  #15 (permalink)  
Старый 11.04.2012, 15:28
Профессор
Отправить личное сообщение для Маэстро Посмотреть профиль Найти все сообщения от Маэстро
 
Регистрация: 02.07.2010
Сообщений: 642

Сообщение от Maxmaxmахimus Посмотреть сообщение
чего тебе не ясно еще?
Мне всё ясно. В частности с Вами.

Сообщение от Maxmaxmахimus Посмотреть сообщение
я тебе дал функцию которая делает то что ты просил? почему тема еще не закрыта?
Ваша функция НЕ ВЫПОЛНЯЕТ то, что я просил.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с Popup окном vovuslik jQuery 5 12.06.2010 16:12
Проблема с дизайном после отправки xmlhttprequest, Проблема с дизайном после отправки cyberx AJAX и COMET 3 01.05.2010 17:07
Проблема с CSS COKOJIOB (X)HTML/CSS 5 04.08.2009 14:19
Проблема, в менюшке Большой джо Элементы интерфейса 0 12.07.2009 17:12
Проблема спама lliberty AJAX и COMET 1 12.03.2009 16:47