1

問題がありますが、解決方法がわかりません。文字列から長い数値を取得する必要があります (この文字列は、XML ファイルからいくつかのフィールドを取得するために作成した SAXparser クラスで取得します)。

問題のあるコードは次のとおりです。

if (bprice) {
String price = new String(ch, start, length);
System.out.println("Product price: " + price);
bprice = false;
if (price.equalsIgnoreCase("0"))
product.price = null;
else product.price = Long.parseLong(price);
}

( productは、すべての製品情報を保存するオブジェクトのインスタンスです。最後の行でエラーが発生しました)

私はそれをデバッグし、これを得ました:

ターゲット VM で例外が発生しました: 入力文字列の場合: "1.04" java.lang.NumberFormatException: 入力文字列の場合: "1.04" at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) at java.lang.Long.parseLong( Long.java:419) の java.lang.Long.parseLong(Long.java:468) の parsers.LectorXML.characters(LectorXML.java:325) の com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser .characters(AbstractSAXParser.java:538) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:464) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration .parse(XML11Configuration.java:808) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java: 1205) parsers.LectorXML.leer(LectorXML.java:71) で parsers.LeerXML.main(LeerXML.java:20) で <

4

1 に答える 1

2

1.04 は有効な long ではありません。ダブルフォーマットです。

Double.parseDouble(String);を使用する必要があります。代わりは。

例:

Double.parseDouble(precio1);
于 2012-11-13T21:43:07.273 に答える