Search code examples
androidinputnumbersfractions

How to input a fractional number?


I'm beginner in Java Android developing. I'm using Eclipse SDK 3.6.1 version. I'm trying to do a simple calculator. I have one problem how to input a fractional number? There is my code:

@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));
   }
}

I'm thinking how to make a fractional number.


Solution

  • For Fractional Number, you can use / like 3/4 or a decimal notation like 1.23 is very much there. Are you facing any specific issues!?

    UPDATE AFTER NEGATIVE VOTE, AND MORE DESCRIPTION IN QUESTION :-P

    You can have a dot(.) button as you would have any other button. put a . as its text.

    Append all the things in the edit text, and on the click of your = button, take everything out from the edit text as string, first treat the mathematical signs as +,-,x,/ as delimiters, and convert your values to post-fix notation, store them in an array and then calculate.