Как создать BigDecimal с несколькими отрицаниями? - PullRequest
0 голосов
/ 27 октября 2019

Я хотел бы создать число BigDecimal с несколькими отрицаниями, но я понятия не имею, как я могу это сделать?

Это мой текущий код:

import java.math.BigDecimal;

public class Main {
    public static void main(String[] args) {
        BigDecimal test = new BigDecimal("-(-(-(-(-(-(-(2)))))))");
    }
}

Ошибка:

Exception in thread "main" java.lang.NumberFormatException                                                                                                      
        at java.math.BigDecimal.<init>(BigDecimal.java:553)                                                                                                     
        at java.math.BigDecimal.<init>(BigDecimal.java:383)                                                                                                     
        at java.math.BigDecimal.<init>(BigDecimal.java:809)                                                                                                     
        at Main.main(Main.java:5)    

Что я должен сделать для достижения своего намерения? Потому что теперь я получаю сообщение об ошибке из-за формата.


Контекст следующий: я создаю калькулятор и пытаюсь решить помеченную проблему с кнопкой отрицания. Пользователь может отрицать число несколько раз, поэтому «отрицание» может произойти, например, 10 раз. Позже, когда я выбираю операцию, которую я хочу сделать, например, добавление, мне нужно получить число из ArrayList, и я понятия не имею, как я могу отразить число отрицаний на правильном знаке числа. Например, из строки, хранящейся в ArrayList, которую я дал ниже, как я могу получить число -2, потому что пользователь отрицает число 2, 7 раз:

negate (negate (negate (negate (negate)(negate (negate (2)))))))

Я пытался изменить отрицание на - и создать число, но, к сожалению, такой возможности нет. Так как же мне добиться этого эффекта?

enter image description here

...