вычисление и отображение чисел в Java - PullRequest
0 голосов
/ 23 марта 2012

У меня есть следующий код ....

double num1 = Double.parseDouble(textArea_price.getText());
double num2 = Double.parseDouble(textArea_quantity.getText());

double result = num1*num2;
textArea_result.setText(
    new BigDecimal(textArea_price.getText())
        .multiply(new BigDecimal(textArea_quantity.getText())).toString());

Каждый раз, когда нажимается кнопка, числа в textArea_price и textArea_quantity умножаются и отображаются в textArea_result. Я хочу, чтобы значение в textArea_result добавлялось в результат умножения двух текстовых областей, а не сбрасывало значение в textArea_result при каждом нажатии кнопки ...

Ответы [ 2 ]

1 голос
/ 23 марта 2012

Я не знаю Java, но разве не так?

double num1 = Double.parseDouble(textArea_price.getText());

double num2 = Double.parseDouble(textArea_quantity.getText());

double oldResult = 0;
String result = textArea_result.getText();
if (result  != "")
    oldResult = Double.parseDouble(result);

double result = oldResult + num1 * num2;
textArea_result.setText(Double.toString(result));

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

double num1 = Double.parseDouble(textArea_price.getText());

double num2 = Double.parseDouble(textArea_quantity.getText());

String result = textArea_result.getText();
double oldResult = (result == "") ? 0 : Double.parseDouble(result);

double result = oldResult + num1 * num2;
textArea_result.setText(Double.toString(result));
0 голосов
/ 23 марта 2012

Или:

double num1 = Double.parseDouble(textArea_price.getText());
double num2 = Double.parseDouble(textArea_quantity.getText());
double oldres = Double.parseDouble(textArea_result.getText());

double result = oldres + num1*num2;
textArea_result.setText(Double.toString(result));

Или:

BigDecimal price = new BigDecimal(textArea_price.getText());
BigDecimal quantity = new BigDecimal(textArea_quantity.getText());
BigDecimal oldTotal = new BigDecimal(textArea_result.getText());

BigDecimal total = price.multiply(quantity).add(oldTotal);
textArea_result.setText(total.toString());
...