2009-06-23 8 views
3

단일 정밀도 부동 소수점 숫자를 그것을 만드는 네 바이트의 ASCII 표현으로 변환하려고합니다 (부호/지수/가수). 내 현재 코드는 :플로트의 문자열 표현을 어떻게 왼쪽 패드 할 수 있습니까?

Integer.toString(Float.floatToRawIntBits(f),16); 

Float.floatToRawIntBits는 동일한 바이트를 사용하여 정수하게하고 Integer.toString은 육각 형태의 ASCII 숫자를 생성한다 (따라서 기수 = 16 지정). 내 문제는 항상 8 자의 아스키 문자와 선택적 '-'기호가 필요하고, Integer.toString은 왼쪽의 0으로 채워지지 않는다는 것입니다.

아무도 우아한 해결책을 제시 할 수 있습니까?

감사합니다.

답변

8

당신은 String.format()를 사용할 수 있습니다

String.format("%08x", Float.floatToRawIntBits(f)) 

이 결과를 패드를 제로와 16 진수로 포맷합니다. 형식 문자열에 대한 세부 사항은 here입니다.

+1

우아하고 완벽하게 기능합니다. 고마워요 !! – apalopohapa