Самодельный класс BCD - ошибка умножения BCD
Я делаю урок BCD в качестве упражнения для школы и сталкиваюсь с некоторыми проблемами. Ниже мой класс BCD.
Моя проблема с методом multiply BCDs. Он работает хорошо с меньшими числами, такими как 4 329 * 4, однако, с более крупными продуктами, такими как 4,329 и 29,385, я получаю ошибку NullPointerException в первой строке моего метода addBCDs:
int[] added = new int[other.numberOfDigits()];
Я попытался отследить проблему и не смог найти проблему. Почему я получаю эту ошибку и как я могу это исправить?
Спасибо за помощь!
2 ответа
Решение
В методе:
public BCD multiplyBy(int num)
В последнем операторе else следующее условие никогда не выполняется:
if (x == digits.length - 1 && carry != 0)
и поэтому "ans" никогда не устанавливается и остается нулевым.
int[] added = new int[other.numberOfDigits()];
Единственный способ получить NPE на этой линии, если other
нулевой.