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);
}
}
읽어주셔서 감사합니다.
반응형
최근댓글