【发布时间】:2014-09-23 15:51:33
【问题描述】:
我正在制作一个图形计算器,它允许计算有错误的数据(即 5 +-0.02)。我创建了一个名为Numbers3 的对象,它的属性中有一个BigDecimal 变量。当我通过控制台输入数据时,一切正常。当我试图从JTable 检索数据时,问题就来了;我将对象转换为String,但是当它面对BigDecimal(String) 时会抛出异常:
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException
at java.math.BigDecimal.<init>(BigDecimal.java:470)
at java.math.BigDecimal.<init>(BigDecimal.java:739)
这就是我将对象从JTable 获取到String 的方式。这是有效的,因为当我从.getClass() 打印返回时,输出是java.lang.String):
String number = (String)(table.getValueAt(i,j));
还尝试了其他几种选择,例如:
String number=new String(String.valueOf(table.getValueAt(i,j));
非常感谢您对这个问题的任何帮助。
【问题讨论】:
-
你在传递什么字符串...做一个 System.out.println("" + String);看看你实际上传递了什么新的 BigDecimal(String)。
-
能否看一下代码,打印到控制台时的字符串值是多少?
标签: java string jtable bigdecimal numberformatexception