을받지 않고 BigDecimal의에 문자열을 구문 분석하는 방법 :나는이 오류가 BigDecimal의에 문자열 배열에서 값을 구문 분석 할 때 오류
Exception in thread "main" java.text.ParseException: Unparseable number: "86400864008640086400222"
내가이 문제를 해결하는 방법을 해결책을 인터넷에서 검색하고 있습니다. 너희들이 아는가?
BigDecimal을 사용하는 것은 제 생각이 아니지만 불행히도해야합니다.
public void Function() throws ParseException {
String [] array;
array=OpenFile().split("\\s");
for(int i = 10 ;i < array.length; i+= 11) {
BigDecimal EAE = parseCurrencyPrecise(array[i]);
System.out.println(EAE);
}
}
OpenFile 기능은 데이터 파일을 열고이 읽기 : 시도가 구문 분석 할 때 다음
public static BigDecimal parseCurrencyPrecise (String value) throws ParseException
{
NumberFormat format = NumberFormat.getCurrencyInstance();
if (format instanceof DecimalFormat)
((DecimalFormat) format).setParseBigDecimal (true);
Number result = format.parse (value);
if (result instanceof BigDecimal)
return (BigDecimal) result;
else {
// Oh well...
return new BigDecimal (result.doubleValue());
}
}
내 코드입니다 : 나는 그것을 BigDecimal를로 문자열에서 값을 변경하고 반환하기로 몇 가지 코드를 설립 이런 식으로 temp + = line + ""; 이것이 내가 \ s로 나눈 이유입니다. Strings와 Integers를 가진이 작품이긴하지만 BigDecimal에 문제가있다.
인사말, 대신 당신은 BigDecimal(String val)
생성자의 사용을 만들 수있는 자신을 구문 분석을 다루는
정말 큰 숫자 앞에 로캘에 대한 통화 기호가 있습니까? 이 오류를 통화 기호로 복제 할 수 있지만 달러 기호 (내 로케일의 통화)를 사용할 때 작동합니다. – rgettman
이 지역 로그인은 어떻게됩니까? 나는 오늘 BigDecimal을 사용하기 시작했고, 지역 신호에 관한 기사를 들었다. – Agnes
'new BigDecimal (result.doubleValue()) 대신'BigDecimal.valueOf (result.doubleValue())'를 사용하십시오. – Tom