ProgramingTip

어디에서나 BigDecimal로 어떻게 구문 분석을 수행 할 수 있습니까?

bestdevel 2020. 12. 15. 19:39
반응형

어디에서나 BigDecimal로 어떻게 구문 분석을 수행 할 수 있습니까?


이 질문에 이미 답변이 있습니다.

이 링크 : 10,692,467,440,017.120 (금액)이 있습니다.

BigDecimal로 구문 분석하고 싶습니다. 문제는 DecimalFormat과 NumbeFormat을 모두 헛된 시도했다는 것입니다. 도움이 필요하세요?


이 시도

// Create a DecimalFormat that fits your requirements
DecimalFormatSymbols symbols = new DecimalFormatSymbols();
symbols.setGroupingSeparator(',');
symbols.setDecimalSeparator('.');
String pattern = "#,##0.0#";
DecimalFormat decimalFormat = new DecimalFormat(pattern, symbols);
decimalFormat.setParseBigDecimal(true);

// parse the string
BigDecimal bigDecimal = (BigDecimal) decimalFormat.parse("10,692,467,440,017.120");
System.out.println(bigDecimal);

I18N 지원으로 애플리케이션을 빌드하는 경우 다음을 사용합니다. DecimalFormatSymbols(Locale)

또한 던지 decimalFormat.parse거나 ParseException프로그램의 다른 부분에서 처리하거나 (try / catch 사용) 처리해야합니다.


이 시도

 String str="10,692,467,440,017.120".replaceAll(",","");
 BigDecimal bd=new BigDecimal(str);

올바른 생성자 http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html#BigDecimal(java.lang.String)

String으로 BigDecimal을 직접 인스턴스화 할 수 있습니다.)

예 :

BigDecimal bigDecimalValue= new BigDecimal("0.5");

BigDecimal은 인증서 생성을 제공합니다. 정규식 또는을 통해 번호에서 모든 쉼표를 제거해야합니다 String filteredString=inString.replaceAll(",","").

그런 다음 간단히 BigDecimal myBigD=new BigDecimal(filteredString);

을 만들고 NumberFormat호출 할 수도 있습니다 setParseBigDecimal(true). 그런 다음 다음 parse(수동 형식화에 대해 걱정하지 않고 BigDecimal을 제공합니다.

참조 URL : https://stackoverflow.com/questions/18231802/how-can-i-parse-a-string-to-bigdecimal

반응형