java.text.decimalFormat 용법 상세 설명
6425 단어 자바.DecimalFormat
DecimalFormat 의 pattern 은 모두 양음 자 pattern 을 포함 하고 있 습 니 다.예 를 들 어"\#,\#\#0.00;(\#,\#\##0.00)”:
/**
* Created by Shuai on 2016/7/11.
*/
public class Main {
public static void main(String[] args) {
//
BigDecimal bigDecimal = BigDecimal.valueOf(-12211151515151.541666);
//
BigDecimal bigDecimal2 = BigDecimal.valueOf(12211151515151.541666);
String pattern = "#,##0.00;(#,##0.00)";
DecimalFormat decimalFormat = new DecimalFormat(pattern);
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
모든 하위 pattern 은 접두사,수치 부분 과 접두사 로 구성 되 어 있 습 니 다.위의 양음 pattern 은 접두사 와 접두사 만 다 를 수 있 습 니 다.수치 부분 은 기본적으로 pattern 을 바 꿉 니 다.이것 은'\#,\#0.0\#;(\#)'를 의미 합 니 다.'\#,\#0.0\#;(\#,\#0.0#)" 。;뒤의 마이너스 pattern 은 선택 할 수 있 습 니 다.없 으 면 마이너스 값 은 기본 형식 으로 표 시 됩 니 다(대부분의 지역 에서 접 두 사 는'-').예 를 들 어-12,211,151,515,151.54.재 미 있 는 것 은 0 값 에 대해 서 는 pattern 을 바로 잡 습 니 다.
public class Main {
public static void main(String[] args) {
BigDecimal bigDecimal = BigDecimal.valueOf(-0.00);
BigDecimal bigDecimal2 = BigDecimal.valueOf(0.00);
String pattern = "0.00;(0.00)";
DecimalFormat decimalFormat = new DecimalFormat(pattern);
decimalFormat.format(bigDecimal);
System.out.println(decimalFormat.format(bigDecimal));
System.out.print(decimalFormat.format(bigDecimal2));
}
}
출력:
0.00
0.00
DecimalFormat 은 문자열 을 직접 해석 할 수 있 습 니 다.
System.out.print(decimalFormat.parse(",,,1,515,115.26262", new ParsePosition(0)));
출력:
1515115.26262
이 를 통 해 알 수 있 듯 이 decimalFormat.parse 방법 은 모두 자동 으로 제거 되 었 습 니 다.이전 에는 해 석 된 문자열 의 첫 번 째 문 자 는 숫자 여야 하거나,나중에 숫자 를 따라 가 야 합 니 다.그렇지 않 으 면 이상 을 던 지 거나 null 로 해 석 됩 니 다.parse 의 두 번 째 매개 변 수 는 분 석 된 첫 번 째 문자 의 위 치 를 지정 합 니 다.위의 예 위 치 는 0,1,2,3 은 모두 1 부터 해석 하고 4,5 는 모두 5 부터 해석 합 니 다.즉,취 할 경우 위 치 는 뒤에 붙 어 있 는 숫자 로 보충 합 니 다.만약.앞 에 숫자 를 제외 한 다른 문자 가 나타 나 면 parse 는 이 문자 의 앞 자리 로 해석 하거나,뒤에 숫자 를 제외 한 다른 문자(포함)가 나타 나 면 pares 는 이 문자 의 앞 자리 로 해석 합 니 다.pattern 에 여러 그룹의 개수 가 다른 문 자 를 포함 하고 있다 면,예 를 들 어"\#,\#,\#\#,\#\#\#\#"는 그룹의 다음 그룹 을 사용 합 니 다.즉,"\#,\#,\#,\#,\#\#,\#\#\#"="\#\##\#,\##,\#\##\#\#"="\#,\#
public class Main {
public static void main(String[] args) {
BigDecimal bigDecimal = BigDecimal.valueOf(65652323265.626262);
String pattern = "#,##,###,###0.00";
String pattern2 = "######,###0.00";
String pattern3 = "##,####,###0.00";
DecimalFormat decimalFormat = new DecimalFormat(pattern);
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.63
656,5232,3265.63
656,5232,3265.63
Special Pattern Characters과학적 계산 법
1234 는 1.234 x 10^3 이 고 pattern 은 0.\#\#\#E0 이 며 1234 를 1.234E 3 로 포맷 합 니 다.
정수 개수:
수치 반올림 규칙
방법 decimalFormat.setRoundingMode 를 통 해 RoundingMode 을 설정 할 수 있 습 니 다.기본 값 은 RoundingMode.HALF_EVEN. 입 니 다.
동기 화 되 지 않 습 니 다.다 중 스 레 드 에 접근 하면 동기 화 를 스스로 실현 해 야 합 니 다.
모든 스 레 드 에 단독 형식 인 스 턴 스 를 만 드 는 것 을 권장 합 니 다.여러 스 레 드 가 동시에 형식 에 접근 하려 면 외부 에서 동기 화 되 어야 합 니 다.
Example
// Print out a number using the localized number, integer, currency,
// and percent format for each locale
Locale[] locales = NumberFormat.getAvailableLocales();
double myNumber = -1234.56;
NumberFormat form;
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) {
continue; // Skip language-only locales
}
System.out.print(locales[i].getDisplayName());
switch (j) {
case 0:
form = NumberFormat.getInstance(locales[i]); break;
case 1:
form = NumberFormat.getIntegerInstance(locales[i]); break;
case 2:
form = NumberFormat.getCurrencyInstance(locales[i]); break;
default:
form = NumberFormat.getPercentInstance(locales[i]); break;
}
if (form instanceof 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) {}
}
}
참고:주소이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.