2016년 5월 3일 화요일

Double, Float 지수e 표현을 일반 숫자표현으로 처리 하는 방법.

서버와 데이터 통신을 하다 보면 float 형 또는 double 형 데이터를 Byte Array 로 받아서 해당 형으로 변환 시켜야 할때가 있다.

이때 숫자로 표현 하고자 할때 아래와 같은 문제가 발생한다.

<원데이터>
102571293.000000
<ByteArray 받은것 double 변환후 스트링 표현하면 아래와 같이>
1.02571293E8

위와 같이 실수가 지수e 표현 되는것을 알수 있다.

위와 같이 표현을 필요도 하지만 일반적인곳에서는 일반적인 숫자로 표현 하기를 원하기 때문에 처리 하려면
아래와 같이 하면 일반적인 숫자로 표현이 가능하다.

DecimalFormat df = new DecimalFormat("#.#");
String sValue = df.format(ByteBuffer.wrap(output1, 0, 8).getDouble());

위에서 output1 은 서버에서 받은 byte[] 배열 8바이트 double 형이고 이것을 변환 할때 "DecimalFormat" 을 이용하면 원하는

결과를 얻을수 있다. ^^