짧은
십진포의 패턴에는 "#, ## 0.00; (#, ## 0.00)"과 같은 양수 및 음의 하위 패턴이 포함되어 있습니다.
/*** Shuai가 2016/7/11에 작성했습니다. */public class main {public static void main (String [] args) {// 긍정적 인 값 bigdecimal bigdecimal = bigdecimal.valueof (-12211151515151.541666); // 음수 값 bigdecimal bigdecimal2 = bigdecimal.valueof (1221115151515151.541666); 문자열 패턴 = "#, ## 0.00; (#, ## 0.00)"; Decimalformat Decimalformat = 새로운 Decimalformat (패턴); Decimalformat.format (bigdecimal); System.out.println (Decimalformat.format (bigdecimal)); System.out.print (DecimalFormat.format (bigdecimal2)); }}산출:
(12,211,151,515,151.54) 12,211,151,515,151.54
각 하위 패턴은 접두사, 수치 부분 및 접미사로 구성됩니다. 예를 들어, 위의 양수 및 부정적인 패턴은 다른 접두사와 접미사만을 가질 수 있습니다. 숫자 부분은 기본적으로 긍정적 인 패턴을 취합니다. 이는 "#, ## 0.0#; (#)" 가 "#, ## 0.0#; (#, ## 0.0#) 와 같음을 의미합니다. ; 이후의 음의 패턴은 선택 사항이며, 그렇지 않은 경우, 음수 값은 기본 형식으로 표시 될 수 있습니다 (접두사는 대부분의 영역에서 " -"), 예 : -12,211,151,515,151.54 . 흥미롭게도 0 값의 경우 긍정적 인 패턴을 가져옵니다.
공개 클래스 메인 {public static void main (String [] args) {bigdecimal bigdecimal = bigdecimal.valueof (-0.00); bigdecimal bigdecimal2 = bigdecimal.valueof (0.00); 문자열 패턴 = "0.00; (0.00)"; Decimalformat Decimalformat = 새로운 Decimalformat (패턴); Decimalformat.format (bigdecimal); System.out.println (Decimalformat.format (bigdecimal)); System.out.print (DecimalFormat.format (bigdecimal2)); }}산출:
0.000.00
DecimalFormat은 문자열을 직접 구문 분석 할 수 있습니다.
System.out.print (Decimalformat.parse ( ",, 1,515,115.26262", New ParsePosition (0));
산출:
1515115.26262
보시다시피, Decimalformat.parse 메소드가 자동으로 제거됩니다 . 이전 에는 구문 분석 된 문자열의 첫 번째 문자가 숫자이거나 숫자 뒤에 있어야한다는 점에 유의해야합니다. 그렇지 않으면 예외가 널로 던져 지거나 구문 분석됩니다. 구문 분석의 두 번째 매개 변수는 구문 분석 할 첫 번째 문자의 위치를 지정합니다. 위의 예제 위치 0, 1, 2, 3은 모두 1에서 1, 4, 5는 모두 5에서 구문 분석됩니다 . 다른 문자가 제외하고 숫자가 구문 분석하기 전에 숫자가 표시되면 , 이 문자의 이전 숫자에 구문 분석을 구문 분석하거나, 숫자가 pares (포함 ) 이후에 나타나는 것을 제외한 다른 문자가있는 경우,이 문자의 이전 숫자에 구문 분석 구문을 구문 분석하십시오.
패턴이 다른 숫자를 가진 여러 그룹의 문자를 포함한다면 : "#, ##, ###, ####" 은 다음 그룹을 다음 그룹을 사용합니다. 즉, "#, ##, ###, ####"== "#####, ###"== "##, ####, ####"== "###"
공개 클래스 메인 {public static void main (String [] args) {bigdecimal bigdecimal = bigdecimal.valueof (65652323265.626262); 문자열 패턴 = "#, ##, ##, ###, ### 0.00"; 문자열 patter2 = "#####, ### 0.00"; 문자열 패턴 3 = "##, ####, ### 0.00"; Decimalformat Decimalformat = 새로운 Decimalformat (패턴); System.out.println (Decimalformat.format (bigdecimal)); Decimalformat.applypattern (Pattern2); System.out.println (Decimalformat.format (bigdecimal)); Decimalformat.applypattern (Pattern3); System.out.println (Decimalformat.format (bigdecimal)); }}산출:
656,5232,3265.63656,5232,3265.63656,5232,3265.63
특별한 패턴 문자
과학적 계산 방법
1234는 1.234 x 10^3으로 표시 될 수 있고 패턴은 "0. ### e0"이며 1234 ~ 1.234E3을 형식화합니다.
정수 수 :
상당한 숫자의 수는 정수 숫자의 최소 수와 최대 10 진수 숫자 수의 합에서 도출됩니다. 예를 들어, "## 0. ## e0"정수 숫자의 최소 수는 1이고 최대 소수점 숫자 수는 2, 유효한 숫자는 3이고 형식 12345는 "12.3e3"입니다. 유효한 숫자를 제외하고 다른 항목은 생략됩니다.
수치 반올림 규칙
RoundingMode는 meter decimalformat.setRoundingMode를 통해 설정할 수 있습니다. 기본값은 RoundingMode.half_even입니다.
동기화되지 않았습니다. 여러 스레드에서 액세스하는 경우 직접 동기화를 구현해야합니다.
각 스레드에 대해 별도의 형식 인스턴스를 작성하는 것이 좋습니다. 여러 스레드가 동시에 형식에 액세스하면 외부에서 동기화해야합니다.
예
// 각 로케일 로케일에 대해 현지화 된 번호, 정수, 통화, // 및 백분율 형식을 사용하여 숫자를 인쇄합니다 [] locales = numberformat.getavailablelocales (); 이중 mynumber = -1234.56; 숫자 형식 형식; for (int j = 0; j <4; ++ j) {system.out.println ( "format"); for (int i = 0; i <locales.length; ++ i) {if (locales [i] .getCountry (). length () == 0) {계속; // 언어 전용 지역을 건너 뜁니다} system.out.print (Locales [i] .getDisplayName ()); 스위치 (j) {case 0 : form = numberformat.getInstance (Locales [i]); 부서지다; 사례 1 : form = numberformat.getIntegerinstance (Locales [i]); 부서지다; 사례 2 : form = numberformat.getCurrencyInstance (Locales [i]); 부서지다; 기본값 : form = numberformat.getPerCentInstance (Locales [i]); 부서지다; } if (decimalformat의 형식 인스턴스) {System.out.print ( ":" + ((DecimalFormat) form) .topattern ()); } system.out.print ( " ->" + form.format (mynumber)); try {System.out.println ( " ->" + form.parse (form.format (myNumber))); } catch (parseException e) {}}}참조 : 원본 주소
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.