2013-07-09 2 views
3

문제점이 있습니다. 나는 응용 프로그램에서 금액 작업, 그리고 형식을 현지화해야합니다. java.util.Locale의 NumberFormat.getCurrencyInstance()을 사용합니다. 대부분의 경우에 그것은 잘 보인다. 그러나 음수가 문제입니다. 네덜란드어 nl-NL 로케일에 대한 사전 정의 된 형식이(네덜란드어) 로켈의 NumberFormat 사용자 정의 변경

€ 200,00- 

하지만 네덜란드의 기준에 따르면,이 예제는 NumberFormat.getCurrencyInstance(new Locale("nl", "NL")).format(-200)입니다

€ -200,00 

해야처럼 보인다. 그렇지 않으면 형식을 변경하고 싶지 않습니다.

아이디어가 있으십니까?

답변

2

예, this은 문제를 아주 잘 설명합니다 (Java에서 사용하는 CLDR와 공식 네덜란드어 권장 사항 간의 불일치).

((DecimalFormat)NumberFormat.getCurrencyInstance(new Locale("NL", "nl"))).applyPattern("¤ #,##0.00;¤ -#").format(-200); 

(당신이 어디를이 분해 방법 :

는 양의 값에 대한 기본 형식과 음수에 대해 다른 하나를 사용하여, 당신은 스스로를 정의 할 수있는 CLDR의가 아닌 다른 형식을 사용하려면 패턴을 적용하는 등 당연히 기존 코드에 따라 달라집니다)

¤ #,##0.00은 양수 값에 대한 현재 기본 네덜란드어 패턴이며, ¤ -#은 음수 값의 새 패턴으로 "통화 기호를 먼저 입력 한 다음 줄 바꿈하지 않는 공백 즉 일반 SPC 문자가 아닌 \u00a0 액터), 음수 기호, 양수 값과 같은 형식 "(;은 형식 문자열에서 양수 값 형식을 음수 값 형식과 구분합니다).