Когда я хочу, чтобы разобрать значения из массива строк в BigDecimal У меня есть эта ошибка:Как разобрать строку в BigDecimal без получения ошибки
Exception in thread "main" java.text.ParseException: Unparseable number: "86400864008640086400222"
Я ищу в Интернете для решения, как это исправить. Может, вы, ребята, знаете?
Это была не моя идея использовать BigDecimal, но, к сожалению, мне нужно. Я основал некий код, который предполагается изменить значение из строки в BigDecimal и вернуть его:
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());
}
}
Вот мой код при попытке разобрать:
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 открыть файл с данными и прочитать таким образом, L temp + = line + ""; Вот почему я раскололся на \ s. Эта работа для меня со строками и целыми, но у меня проблема с BigDecimal.
Привет,
Есть ли знак валюты для вашего региона перед действительно большим количеством? Я могу дублировать эту ошибку с помощью знака валюты, но она работает, когда я использую знак доллара (валюта для моей локали). – rgettman
Что происходит с этим местным знаком? Сегодня я начал использовать BigDecimal, и я услышал статью о местных знаках. – Agnes
Используйте 'BigDecimal.valueOf (result.doubleValue())' вместо 'new BigDecimal (result.doubleValue())'. – Tom