2012-03-23 60 views
0

显示数字我有以下代码....计算和在Java

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中的值被添加到两个textareas的乘法结果上,而不是每次单击按钮时重置textArea_result中的值...

+0

对于更快地提供帮助,发布[SSCCE](http://sscce.org/)。 – 2012-03-23 14:26:41

+0

您可以在执行setText部分之前将值保存在textArea_result中,然后将其添加到toString的前/后 – 2012-03-23 14:28:23

回答

1

我不知道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)); 

如果你真的想避免if语句试试这个,但它只是语法糖:

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

大概只需将最后一行替换为:textArea_result.setText(Double.toString(result)); – barsju 2012-03-23 14:28:24

+0

像这样?嘿,我喜欢Java。它的可爱小小的方法名称令人讨厌。 :)但是,如果textArea_result不是一个数字呢?就像按下按钮的初始时间一样。它是空的吗? – Jordan 2012-03-23 14:31:21

+0

@Jordan我收到此错误消息异常线程“AWT-EventQueue-0”java.lang.NumberFormatException:空字符串 – FatmaTurk 2012-03-23 14:32:18

0

或者:

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()); 
+0

这些工作都没有... – FatmaTurk 2012-03-23 14:56:59