좋은지식/잡학다식
[JAVA] 자바의 지수 표현 없애기 E (BigDecimal)
알라르방
2023. 1. 13. 15:11
엑셀 데이터를 변수로 변환 시에 지수(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)
반응형