엑셀 데이터를 변수로 변환 시에 지수(E)가 붙을때가 있다.
예를 들면 3887418290.3 -> 3.8874182903E9
BigDecimal 객체를 쓸때 지수 표현식을 간단히 없애는 방법이다.
이 때 대상 숫자가 정수이면 new BigDecimal
대상 숫자가 소수이면 BigDecimal.valueOf() 함수를 사용한다.
소수일 때 new BigDecimal로 객체를 생성하게 되면 아래와 같이 쓰레기 데이터가 뒤에 붙으니 조심!
double a = 3887418290.3;
BigDecimal b1 = new BigDecimal(a);
BigDecimal b2 = BigDecimal.valueOf(a);
System.out.println(a);
System.out.println(b1);
System.out.println(b2);
3.8874182903E9
3887418290.30000019073486328125
3887418290.3
한줄로 간단히 정리
Double.compare(a, (long)a) == 0 ? new BigDecimal(a) : BigDecimal.valueOf(a)
반응형
'좋은지식 > 잡학다식' 카테고리의 다른 글
아시아나항공 마일리지 적립 및 사용 (0) | 2023.01.28 |
---|---|
물류관리의 지표 (0) | 2023.01.28 |
[직구] 수입통관절차 단계별 정보 안내 (2) | 2023.01.04 |
커튼은 뚫지말고 설치하세요 (0) | 2023.01.02 |
배달 시대 쿠폰을 수납하자. (0) | 2022.11.26 |