2012-03-23 58 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