[JAVA] 계산기 소수점 관리

Prim·2021년 11월 17일

유튜버 코딩발전소님의 안드로이드 계산기 만들기를 따라하다가
약간 미완성상태로 강의가 끝났다.
계산기의 소수점문제를 고쳐보자.

우선 계산 결과값이
1.000000
5314.000000
3.1400000
이렇게 나왔다.

그리하여 직접 해결한 코드다.

    public void replaceNum(double result){
        if(isNumeric(result)){
            strResultNumber = String.valueOf((int)result);
        }else {
            strResultNumber = String.valueOf((Math.round(result*10000)/10000.0));
        }
    }

    public boolean isNumeric(double result){
        return Math.ceil(result) == Math.floor(result);
    }

기존 result 변수는 double형으로 계산하기때문에 인자 값은 double형으로 받아온다.

우선 isNumeric()으로 result가 정수인지 확인한다.
ceil(올림)floor(버림)의 예시는 다음과 같다.

Math.ceil(12.9) = 13; Math.floor(12.9) = 12;

12.9는 정수가 아니다.

 Math.ceil(12.0) = 12; Math.floor(12.0) =12; 

12.0은 정수다.

replaceNum()isNumeric()이 true라면 바로int로 형변환을 해준다.

isNumeric()이 false라면 소수점 넷째자리까지만 보여주고 round로 반올림한다.
둘째자리까지 보여주고싶다면 Math.round(result*100)/100.0)하면 된다.

더 좋은코드가 있다면 가르쳐 주십쇼 선배님들ㅎㅎ

profile
안드로이드 개발자가 되보자

0개의 댓글