Вычитание. Длинная арифметика. JS

454
09 марта 2017, 23:36

Необходимо реализовать вычитание больших чисел. Написала функцию, но в консоли выводит с ошибкой: 499999-41900

function sub (a, b) {
  a = a.split('').reverse();
  b = b.split('').reverse();
  var index;
  var c = 0;
  var length = a.length;
  for (index = 0; index < length; index++) {
    console.log(a[index], b[index], c)
    if (c) {
      a[index] -= (b[index] || 0) + c;
    } else {
      a[index] -= (b[index] || 0);
    }
    a[index] += (c = (a[index] < 0) ? 1 : 0) * 10;
  }
  // Count the zeroes which will be removed
  index = 0;
  length = a.length - 1;
  while (a[length - index] === 0 && length - index > 0) {
    index++;
  }
  if (index > 0) {
    a.splice(-index);
  }
  return a.reverse().join('');
}
console.log(sub('5000000002', '5102'));

Подскажите, пожалуйста, в чем может быть ошибка?

READ ALSO
Проверка поля input[text]

Проверка поля input[text]

Как проверить поле input[text] ? Только вот не отправляя формуЕсть кнопка "Дальше" нажимая на эту кнопку проверяется поле

295
Date назад на 10 лет

Date назад на 10 лет

Помогите написать функцию которая с нынешнего времени пойдет назад на 10 лет и возвратит дату время год неделю и все о дате на английском

313
посмотреть команды в package.json

посмотреть команды в package.json

Какая команда в консоле, чтобы посмотреть список доступных скриптов

298