2014-09-06 2 views
0

setZeroDigit의 용도와 그 작동 방식을 설명 할 수 있습니까?
예 :10 진수 형식으로 숫자 0을 설정하십시오.

double d = 123456.7899; 
DecimalFormatSymbols symbols = new DecimalFormatSymbols(); 
symbols.setZeroDigit('@'); 
symbols.setMinusSign('^'); 

DecimalFormat df = new DecimalFormat("-###,###.000",symbols); 

System.out.println(df.format(d)); 

^ABC, DEF.GI @가 인쇄되지만 출력을 계산하는 방법을 이해하지 못합니다. javadocs를 읽었지만별로 도움이되지 않습니다. 내 지역이 한 가지 더 있습니다.

+0

다양한 양수 및 음수에 대한 출력은 얼마나됩니까? – usr2564301

답변

2

음수 기호, 백분율 기호 등과 같은 일반적인 기호 집합을 사용하지 않는 다른 언어 또는 로캘로 숫자를 인쇄하려면 DecimalFormatSymbols을 사용합니다. 예를 들어 점을 0으로 사용하는 아랍어로 숫자를 인쇄하는 경우 setZeroDigit을 사용할 수 있습니다.

예를 들어, "@을 0으로 사용하십시오."라고 말한 것은 정확히 무엇이 일어 났는지입니다.

그러나 약간 더 있습니다. 1, 2, 3 등에 사용되는 기호는 사용하는 문자 인코딩에 관계없이 0에 대한 기호 다음에 나오는 기호로 가정합니다. 보통의 문자 인코딩에서 @ 뒤에 오는 기호는 A, B, C 등입니다.

-123456.7899은 소수점 세 자릿수로 반올림해야하므로 -123456.79이되며 그 다음 기호를 사용하여 인쇄됩니다 0, 1, 2 ... 9 대신에 @, A, B ... I이 있습니다. setMinusSign을 사용하여 - 대신 ^을 사용해야한다고 지정했습니다.

+0

나는 그것을 생성하는 방법을 알고 싶습니다^ABC, DEF.GI @ – sol4me

+0

방금 ​​업데이트했습니다. 내 질문과 예 double d = 123456.7899 – sol4me

+0

당신은 -123456.7899가 -123456.790 별칭^ABC로 반올림되도록 3 자리 10 진수 만 물었습니다. DEF.GI @ – ARLabs

관련 문제