복습

안드로이드스튜디오 - 계산기 본문

Android

안드로이드스튜디오 - 계산기

ykm1256 2020. 7. 1. 09:38

계산기 구현하기

 - 사진과 같이 버튼, 에딧텍스트, 텍스트뷰로 화면을 구현하였다. 

 - 더하기, 빼기, 곱하기, 나누기, 나머지의 기능을 넣었다.

 - 실수를 계산할 수 있고, 소숫점 2번째자리까지 출력한다.

 

 

자바 코드

 

※변수선언생략

 

버튼의 기능 구현하기

 

빼기 버튼 구현

btnSub.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                if(num1.trim().equals("")||num2.trim().equals("")){
                    Toast.makeText(MainActivity.this,"값을 입력하세요.",Toast.LENGTH_SHORT).show();
                } else {
                    result = Double.parseDouble(num1) - Double.parseDouble(num2);
                    result = (int)(result*100)/100.0;
                    textResult.setText("계산 결과 : " + result.toString());
                }
            }
        });
  • OnClickListener를 이용하여 버튼이 눌러졌을 때 기능을 수행한다.
  • String 타입의 변수 num1,num2에 각각 에딧텍스트에 있는 두 숫자를 받아온다.
  • 조건문을 사용해 공백을 제거하고 값이 입력되지 않은 경우 값을 입력하라는 토스트 메시지가 출력된다.
  • 값이 제대로 입력되면 실수를 처리해야 하므로 Double타입으로 변환하여 연산한다.
  • 연산한 결과를 100을 곱하고 int형으로 변환하여 나머지 소숫점을 제거한 후 다시 100.0으로 나누어 Double형으로 변환하여 소숫점 2번째 짜리까지 출력한다.
  • 결과를 텍스트뷰에 setText()메서드를 이용하여 결과를 출력한다.

 

나누기 버튼 구현

btnDiv.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                num1 = edit1.getText().toString();
                num2 = edit2.getText().toString();
                if(num1.trim().equals("")||num2.trim().equals("")){
                    Toast.makeText(MainActivity.this,"값을 입력하세요.",Toast.LENGTH_SHORT).show();
                }
               else {
                    if(num2.trim().equals("0")){
                        Toast.makeText(getApplicationContext(),"0으로 나눌 수 없습니다.",Toast.LENGTH_SHORT).show();
                    }else {
                        result = Double.parseDouble(num1) / Double.parseDouble(num2);
                        result = (int) (result * 100) / 100.0;
                        textResult.setText("계산 결과 : " + result.toString());
                    }
                }
            }
        });
  • 빼기 연산과 동일하지만 값이 입력되었을 때 나누기 연산이므로 0을 처리해준다.
  • 나누는 수에 0이 입력되면 0으로 나눌 수 없다는 토스트 메시지를 출력한다.
  • 0이 아니라면 위와 같은 방식으로 나누기 연산을 하여 결과를 출력한다.

※ 나머지 버튼의 기능의 방식은 동일하므로 생략