[java] 쉼표와 반올림을 갖도록 문자열 번호를 어떻게 형식화 할 수 있습니까?
나에게 문자열로 주어진 다음 숫자를 형식화하는 가장 좋은 방법은 무엇입니까?
String number = "1000500000.574" //assume my value will always be a String
이 값을 가진 문자열이되기를 원합니다. 1,000,500,000.57
형식을 어떻게 지정합니까?
답변
DecimalFormat
수업 을보고 싶을 수도 있습니다 . 다른 로케일을 지원합니다 (예 : 1.000.500.000,57
대신 형식이 지정된 일부 국가 ).
해당 문자열을 숫자로 변환해야합니다.이 작업은 다음과 같이 수행 할 수 있습니다.
double amount = Double.parseDouble(number);
코드 샘플 :
String number = "1000500000.574";
double amount = Double.parseDouble(number);
DecimalFormat formatter = new DecimalFormat("#,###.00");
System.out.println(formatter.format(amount));
답변
String.format ()을 사용하여 수행 할 수도 있습니다. String.format ()을 사용하면 한 문자열에서 여러 숫자를 형식화하는 경우 더 쉽고 유연 할 수 있습니다.
String number = "1000500000.574";
Double numParsed = Double.parseDouble(number);
System.out.println(String.format("The input number is: %,.2f", numParsed));
// Or
String numString = String.format("%,.2f", numParsed);
형식 문자열 “% ,. 2f”- “,”는 쉼표로 구분 된 숫자 그룹을 의미하고 “.2″는 소수점 이하 두 자리로 반올림합니다.
다른 형식화 옵션에 대한 참조는 https://docs.oracle.com/javase/tutorial/java/data/numberformat.html을 참조 하십시오.
답변
문자열을 숫자로 변환하면 사용할 수 있습니다
// format the number for the default locale
NumberFormat.getInstance().format(num)
또는
// format the number for a particular locale
NumberFormat.getInstance(locale).format(num)
답변
이것이 Google의 검색 결과 중 1 위이므로 format number commas java
정수로 작업하고 소수를 신경 쓰지 않는 사람들에게 적합한 답변입니다.
String.format("%,d", 2000000)
출력 :
2,000,000
답변
나만의 포맷 유틸리티를 만들었습니다. 많은 기능을 제공하면서 서식을 처리하는 데 매우 빠릅니다. 🙂
다음을 지원합니다.
- 쉼표 형식화 예 : 1234567은 1,234,567이됩니다.
- “천 (K), 백만 (M), 십억 (B), 조각 (T)”접두사.
- 0에서 15까지의 정밀도
- 정밀도 크기 조정 (6 자리 정밀도를 원하지만 3 자리 만 사용할 수 있음을 의미).
- 접두사 낮추기 (선택한 접두사가 너무 큰 경우 접두사가 더 적합한 접두사로 낮아짐을 의미합니다).
코드는 여기 에서 찾을 수 있습니다 . 당신은 이것을 다음과 같이 부릅니다.
public static void main(String[])
{
int settings = ValueFormat.COMMAS | ValueFormat.PRECISION(2) | ValueFormat.MILLIONS;
String formatted = ValueFormat.format(1234567, settings);
}
또한 이것은 십진수 지원을 처리하지 않지만 정수 값에 매우 유용하다는 것을 지적해야합니다. 위의 예는 “1.23M”을 출력으로 표시합니다. 아마도 10 진수 지원을 추가 할 수는 있었지만 그 이후로 너무 많이 사용하지는 않았지만 수학 계산을 위해 압축 된 char [] 배열을 처리하는 BigInteger 유형의 클래스로 병합 할 수도 있습니다.
답변
public void convert(int s)
{
System.out.println(NumberFormat.getNumberInstance(Locale.US).format(s));
}
public static void main(String args[])
{
LocalEx n=new LocalEx();
n.convert(10000);
}
답변
아래 솔루션을 사용할 수도 있습니다-
public static String getRoundOffValue(double value){
DecimalFormat df = new DecimalFormat("##,##,##,##,##,##,##0.00");
return df.format(value);
}