Java에서 수천 구분자를 설정하는 방법은 무엇입니까?
Java에서 수천 구분자를 설정하는 방법은 무엇입니까?
큰 십진법
포맷 기능은 " ," 와 함께 사용할 수 있습니다.
int no = 124750;
String str = String.format("%,d", no);
//str = 124,750
" "에는 로케일 고유의 그룹화 문자가 포함되어 있습니다.
이것은 동작합니다(JavaDoc에 근거해 테스트되지 않았습니다).
DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US);
DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
symbols.setGroupingSeparator(' ');
formatter.setDecimalFormatSymbols(symbols);
System.out.println(formatter.format(bd.longValue()));
JavaDoc에 따르면 첫 번째 줄의 캐스팅은 대부분의 로케일에서 저장해야 합니다.
BigDecimal bd = new BigDecimal(300000);
NumberFormat formatter = NumberFormat.getInstance(new Locale("en_US"));
System.out.println(formatter.format(bd.longValue()));
편집
공간과 같은 사용자 지정 그룹 구분 기호를 가져오려면 다음을 수행합니다.
DecimalFormatSymbols symbols = DecimalFormatSymbols.getInstance();
symbols.setGroupingSeparator(' ');
DecimalFormat formatter = new DecimalFormat("###,###.##", symbols);
System.out.println(formatter.format(bd.longValue()));
브라질에서 사용되는 포맷으로 다음 코드를 사용해 보십시오.
DecimalFormat df = new DecimalFormat(
"#,##0.00",
new DecimalFormatSymbols(new Locale("pt", "BR")));
BigDecimal value = new BigDecimal(123456.00);
System.out.println(df.format(value.floatValue()));
// results: "123.456,00"
정수 데이터 유형에 천 구분 기호를 사용하는 경우 1을 사용하십시오.
- 정수 데이터 유형의 경우
String.format("%d\n", 58625") 및 출력은 58,625가 됩니다.
- 부동 소수점 데이터의 경우 문자열을 입력합니다.포맷(%)%.2f", 58625.21) 및 출력은 58,625.21 입니다.
DecimalFormatSymbols formatSymbols = new DecimalFormatSymbols();
formatSymbols.setDecimalSeparator('|');
formatSymbols.setGroupingSeparator(' ');
String strange = "#,##0.###";
DecimalFormat df = new DecimalFormat(strange, formatSymbols);
df.setGroupingSize(4);
String out = df.format(new BigDecimal(300000).doubleValue());
System.out.println(out);
승인된 답변은 정말로 수정되어야 합니다. 그렇지 않으면 작동하지 않습니다.getDecimalFormatSymbols는 방어 복사를 만듭니다.따라서,
DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US);
DecimalFormatSymbols symbols = formatter.getDecimalFormatSymbols();
symbols.setGroupingSeparator(' ');
formatter.setDecimalFormatSymbols(symbols);
System.out.println(formatter.format(bd.longValue()));
새로운 행은 포메터입니다.setDecimalFormatSymbols(심볼);
NumberFormat nf = DecimalFormat.getInstance(myLocale);
DecimalFormatSymbols customSymbol = new DecimalFormatSymbols();
customSymbol.setDecimalSeparator(',');
customSymbol.setGroupingSeparator(' ');
((DecimalFormat)nf).setDecimalFormatSymbols(customSymbol);
nf.setGroupingUsed(true);
소수점:
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator(' ');
DecimalFormat dfDecimal = new DecimalFormat("###########0.00###");
dfDecimal.setDecimalFormatSymbols(symbols);
dfDecimal.setGroupingSize(3);
dfDecimal.setGroupingUsed(true);
System.out.println(dfDecimal.format(number));
위에서 설명한 바와 같이 다음 링크는 Java가 번호를 현지화할 수 있도록 특정 국가 코드를 제공합니다.나라마다 스타일이 있어요.
위 링크에는 여기에 삽입해야 할 국가 코드가 있습니다.
...(new Locale(<COUNTRY CODE HERE>));
예를 들어 스위스는 다음과 같은 숫자의 형식을 취합니다.
1000.00 --> 1,000.00
그러기 위해서는, 다음의 코드가 유효합니다.
NumberFormat nf = NumberFormat.getNumberInstance(new Locale("de","CH"));
nf.setMaximumFractionDigits(2);
DecimalFormat df = (DecimalFormat)nf;
System.out.println(df.format(1000.00));
결과는 예상대로입니다.
1'000.00
public String formatStr(float val) {
return String.format(Locale.CANADA, "%,.2f", val);
}
formatStr(2524.2) // 2,254.20
사용(「」)_
) 코드 자체의 리터럴 수치 판독성을 높이려면 , 다음의 순서에 따릅니다.
int example = 12_004_953; // Twelve million four thousand nine hundred fifty-three
언급URL : https://stackoverflow.com/questions/5323502/how-to-set-thousands-separator-in-java
'programing' 카테고리의 다른 글
v-for 루프의 n번째 항목마다 항목 삽입 (0) | 2022.07.16 |
---|---|
Vue.js가 컴포넌트 내에서 실행 중인 setInterval을 삭제합니다. (0) | 2022.07.16 |
상태 시스템 튜토리얼 (0) | 2022.07.16 |
Spring MVC의 @ModelAttribute란 무엇입니까? (0) | 2022.07.16 |
vuex의 상태 변화를 동기적으로 감시하려면 어떻게 해야 합니까? (0) | 2022.07.16 |