String 配列から BigDecimal に値を解析したい場合、次のエラーが発生します。
Exception in thread "main" java.text.ParseException: Unparseable number: "86400864008640086400222"
これを修正する方法をインターネットで検索しています。たぶん、あなたたちは知っていますか?
BigDecimal を使用するのは私の考えではありませんでしたが、残念ながら私はそうしなければなりません。値を String から 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 で問題が発生しました。
ご挨拶、