-1

私は Java Android 開発の初心者です。Eclipse SDK 3.6.1 バージョンを使用しています。私は簡単な計算機をやろうとしています。分数の入力方法に問題がありますか? 私のコードがあります:

@Override
public void onClick(View view) {
  switch (view.getId()) {      

     case R.id.btnNum0Id:
     case R.id.btnNum1Id:
     case R.id.btnNum2Id:
     case R.id.btnNum3Id:
     case R.id.btnNum4Id:
     case R.id.btnNum5Id:
     case R.id.btnNum6Id:
     case R.id.btnNum7Id:
     case R.id.btnNum8Id:
     case R.id.btnNum9Id:

        String inDigit = ((Button)view).getText().toString(); 
        if (inStr.equals("0")) {  
           inStr = inDigit;    
        } else {
           inStr += inDigit;   
        }
        tekstas.setText(inStr);

        if (Operator == '=') {
           rezult = 0;
           Operator = ' ';
        }
        break;            

     case R.id.btnAddId:
        aritmetika();
        Operator = '+';
        break;
     case R.id.btnSubId:
         aritmetika();
        Operator = '-';
        break;
     case R.id.btnMulId:
         aritmetika();
        Operator = '*';
        break;
     case R.id.btnDivId:
         aritmetika();
        Operator = '/';
        break;
     case R.id.btnSqrtId:
         aritmetika();
         Operator = 'a';
         break;
     case R.id.btnEqualId:
         aritmetika();
        Operator = '=';
        break;
     case R.id.dot:
         aritmetika();
        Operator = '.';
        break;  

     case R.id.btnClearId:   
        rezult = 0;
        inStr = "0";
        Operator = ' ';
        tekstas.setText("0");
        break;
  }

   } 



private void aritmetika() {
  int inNum = Integer.parseInt(inStr);

  if (Operator == ' ') {
     rezult = inNum;
  } else if (Operator == '+') {
     rezult += inNum;
  } else if (Operator == '-') {
     rezult -= inNum;
  } else if (Operator == '*') {
     rezult *= inNum;
  } else if (Operator == '/') {
     rezult /= inNum;
  } else if (Operator == 'a') {          
         rezult = (float)Math.sqrt(rezult);             
  } else if (Operator == '.') {
      String rezult2 = inStr+'.';     
      //need fractional number
  } else if (Operator == '=') {
     // tolesnis veiksmas
  }
  tekstas.setText(String.valueOf(rezult));
   }
}

分数の作り方を考えています。

4

2 に答える 2

0

分数の場合は、/like3/4またはlikeの10進表記を使用できます1.23。特定の問題に直面していますか!?

反対票の後に更新し、質問の詳細を説明します:-P

他のボタンと同じように、ドット(。)ボタンを使用できます。.そのテキストとしてを置きます。

編集テキストにすべてのものを追加し、=ボタンをクリックして、編集テキストからすべてを文字列として取り出し、最初に数学記号+,-,x,/を区切り文字として扱い、値を修正後の表記に変換して、配列してから計算します。

于 2011-02-21T11:09:16.983 に答える
0

個別の演算子としてではなく、数値処理とドット処理を組み合わせることができます (ドットを数値の一部として扱います)。rezult の型として double を使用する場合、数字とドットを含む文字列全体に対して parseInt の代わりに parseDouble を実行できます。

このデザインは非常に限定的です。操作の解析ツリーを作成する単純なトークナイザーとパーサーを作成するようにしてください。これは、はるかにやりがいのある経験になるでしょう。

于 2011-02-24T16:01:41.337 に答える