1

我有一个问题,但我不知道如何解决它:我需要从一个字符串中获取一个长数字(我在我编写的一个 SAXparser 类中获取这个字符串以从 XML 文件中获取一些字段)。

这是有问题的代码:

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);
}

产品是我存储所有产品信息的对象的一个​​实例。我在最后一行得到了错误)

我调试了它,我得到了这个:

目标 VM 中发生异常:对于输入字符串:“1.04”java.lang.NumberFormatException:对于输入字符串:“1.04”在 java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) 在 java.lang.Long.parseLong( Long.java:419) 在 java.lang.Long.parseLong(Long.java:468) 在 com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser 的 parser.LectorXML.characters(LectorXML.java:325) .characters(AbstractSAXParser.java:538) 在 com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:464) 在 com.sun.org.apache.xerces.internal.parsers.XML11Configuration .parse(XML11Configuration.java:808) 在 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 is not a valid long. It is in double format.

You need to use Double.parseDouble(String); instead.

Example:

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