Codeit Logo 로그인 자바 왕기초변수와 연산형 변환 손실이 발생하는데, 왜 double에서 int로의 형변환을 하나요? 2017년 9월 22일 1,046 조회 답변 0 송경호 (잡다구리저장소) LV 8 송경호 (잡다구리저장소) LV 8 질문 지켜보기를 시작하면 질문에 답변, 댓글이 달릴 때 알림을 받을 수 있어요. 댓글 0개 0 질문 지켜보기 질문 지켜보기를 시작하면 질문에 답변, 댓글이 달릴 때 알림을 받을 수 있어요. Float나 Double 처럼 실수 자료형을 사용하다 보면 실수 값의 크기를 비교할 때가 있습니다. 그때 Float, Double 객체에서 제공해주는 Float.compare(), Double.compare() 함수를 사용해서 실수 값을 비교할 수 있습니다. 함수
매개변수 (Parameters)
반환값(Returns)
Float.compare() 함수의 사용법을 아래 예제를 통해 알아보겠습니다. Float 예제 f1과 f2가 같음
결과
f1이 f2보다 큼
결과
f1이 f2보다 작음
결과
Double.compare() 함수의 사용법을 아래 예제를 통해 알아보겠습니다. Double 예제 d1과 d2가 같음
결과
d1이 d2보다 큼
결과
d1이 d2보다 작음
결과 값 비교에서 string은 equals() 함수를 잘 활용하지면 숫자값은 주로 == 연산자로 값 비교를 해왔다. 그러던 중 똑같은 double형 값을 비교했는데 == 연산자로 확인이 되지 않았다. @Test aList.add (a); 위 처럼 double a와 b 를 연산자로 비교하였을때 true지만 <- double은 자료형 list에 넣어서 확인하였을 때는 false로 나오는 경우다. (Double a = 10.0; Double b =10.0; 인경우는 ==연산자로 비교하였을 때 false로 나온다) <- Double 은 클래스 이럴때 사용하는 것이 함수를 호출한 Number 객체를 인자값과 비교하는 compareTo() 함수다. 위 경우 System.out.println (aList.get (0).compareTo (bList.get (0))==0 ); 와같이 사용하여 비교할 수 있었다. compareTo()는 비교대상이 동일한 값일 때 : 0 비교 대상이 작은 경우 : -1 비교 대상이 큰 경우 : 1 double x = 10.0; Double x = 10.0; 1 0 -1 1과 -1이 헷갈릴 수 있는데 (comepareTo의 인자가 비교대상이다. 난 비교대상이 작은경우(사용하는 값 x가 크기 때문에 이겼다. 긍정 1) 난 비교대상이 큰경우(사용하는 값 x가 작기 때문에 이겼다. 부정 -1) 로 생각한다. |