BigDecimal не выполняет операцию добавления

У меня есть 2 BigDecimal числа. Я пытаюсь добавить их. Мой код выглядит следующим образом:

BigDecimal bd1 = new BigDecimal(10);
BigDecimal bd2 = new BigDecimal(10);

bd1.add(bd2);

Здесь я ожидаю значение bd1 20, но снова и снова оно показывает 10. Оно не добавляется. Пожалуйста, помогите, если я сделал что-то не так.


person zaz    schedule 20.03.2013    source источник


Ответы (5)


Реймеус прав. Вам нужно присвоить значение результату следующим образом:

bd1 = bd1.add(bd2);

Если вы хотите узнать подробности о неизменности, вы можете обратиться по следующей ссылке:

Что подразумевается под неизменным?

person ray    schedule 20.03.2013

BigDecimal значения неизменяемы, вам нужно присвоить значение результату add:

bd1 = bd1.add(bd2);
person Reimeus    schedule 20.03.2013

BigDecimal неизменяем. Каждая операция возвращает новый экземпляр, содержащий результат операции.

Чтение Java Doc о BigDecimal поможет вам понять лучше.

Если вы хотите сохранить сумму bd1 и bd2 в bd1, вам нужно сделать

bd1 = bd1.add(bd2);
person Achintya Jha    schedule 20.03.2013

Попробуй это:

BigDecimal bd1 = new BigDecimal(10);
BigDecimal bd2 = new BigDecimal(10);
bd1 = bd1.add(bd2);
System.out.println(bd1); /*Prints 20*/
person 1218985    schedule 20.03.2013

Вам нужно сохранить результат в новой переменной:

BigDecimal bd3 = bd1.add(bd2);
person Stijn Haus    schedule 20.03.2013