JAVA 에서 실수를 표현하기 위한 자료형은 float, double 형이 존재합니다.

이번 포스트에서는 double 형에 대해 자세히 알아보도록 하겠습니다.

 

1. double vs Double

표현범위 :  −1.7 ∗ 10의308승 ~ 1.7 * 10의308승

구분 내용 데이터 변환
double 형 원시(primitive) 타입
산술 연산 가능, null 사용 불가능
double -> Double 변환
: Boxing (wrapper 타입 변환)
Double 형 wrapper 타입
산술 연산 불가능, null 초기화 및 사용 가능
Double -> double
: UnBoxing (primitive 타입 변환)

 

2. 데이터 변환

// init
int num = 10;

// int to (primitive) double 
double pdNum = (double)num;

// int to (wrapper) Double 
Double wdNum = Double.valueOf(num);

// double to Double
Double wdNum2 = Double.valueOf(pdNum);

// Double to double
double pdNum2 = (double)wdNum;

// init2
double pdNum3 = 20.0;

// AutoBoxing 
Double wbNum3 = pdNum3;

// AutoUnBoxing 
double temp = wbNum3;

 

[예제] GPS 위치 계산 로직 파라미터에 null 값을 제한하기 위해 double 형 사용.

A. NumberUtil 을 구성하여 DTO 항목에서 null 값 보정 

@UtilityClass
public class NumberUtil {
	public static Double defaultZero(Double num) {
        if (num == null) {
            return 0.0;
        }
        return num;
    }
}

B. 테스트 코드

public Test {

	public conversionTest(Double deg, Double rad) {
    	deg_rad(NumberUtil.defaultZero(deg));
        rad_deg(NumberUtil.defaultZero(rad));
    }

    // This function converts decimal degrees to radians
    private static double deg_rad(double deg) {
    return (deg * Math.PI / 180.0);
    }

    // This function converts radians to decimal degrees
    private static double rad_deg(double rad) {
    return (rad * 180 / Math.PI);
    }
}

읽어주셔서 감사합니다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기