2011-12-14 8 views
2

DecimalFormat의 정확한 동작을 완전히 이해하려고합니다. 현재이 클래스의 과학 표기법 기능으로 몇 가지 테스트를하고 있습니다. 그리고 과학 표기법에서 정확한 자릿수의 정확한 숫자를 조정하는 데 문제가 있습니다. 자바 (7)의 자바 독에 따르면DecimalFormat을 사용한 과학 표기법의 유효 자릿수 수

가수의 유효 자리수는 최소 및 최대 정수 분수 숫자의 합이며, 최대 정수 숫자에 의해 영향을받지 않는다. 예를 들어, "## 0. ## E0" 으로 포맷 된 12345는 "12.3E3"입니다. 모든 자릿수를 표시하려면 유효 자릿수를 으로 설정하십시오. 유효 자릿수는 구문 분석에 영향을 미치지 않습니다.

DecimalFormat formatone = new DecimalFormat("##0.##E0"); 
System.out.println(formatone.format(toF)); 

그리고 나는 다음과 같은 출력을 얻을 :

따라서, 나는 그것을 테스트하고있어 난 그냥 표시 한 자바 독의 발췌에 따르면

12,345E3 

을, 나는 생각했다 나는 얻어야한다

12.3E3 

나는 무엇인가하고있다 rong? 내가 뭔가 잘못 이해 했니? http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html에서

답변

0

:-) 모든 해명에 미리

덕분에 다음과 같은 "설명을."줄기 사람은 이상하게 여긴다.

최소 정수 숫자의 최대 개수는 서로 해석 : 정수 최대 자릿수가 최소 개수보다 크고 1보다 크면

, 상기 최대 값의 배수 일 지수 강제 정수 숫자의 최소 수 및 1로 해석 할 정수 자릿수입니다. 가장 일반적인 사용법은 지수가 3의 배수인 엔지니어링 표기법을 생성하는 것입니다 (예 : "## 0. #### # E0 ". 이 패턴을 사용하면 숫자 12345가 "12.345E3"형식으로, 123456 형식이 "123.456E3"으로 형식화됩니다.