这意味着什么?
Exception in thread "main" java.lang.NumberFormatException
java.math.BigDecimal.<init>(Unknown Source)
但是当我点击导致问题的那一行时,没有警告也没有错误。那么,我该如何解决这个问题呢?我的代码仍然运行良好,但我无能为力,为什么我的控制台显示。
编辑2
我可以展示这么多代码,希望你能理解。
byte[] c = new byte[13];
System.arraycopy(buf, pos, c, 0, 10);
System.arraycopy(buf, pos + 10, c, 11, 2);
c[10] = '.';
return new IsoValue(type, new BigDecimal(new String(c)), null);
根据@Benjamin给出的链接,它应该没有问题。
答案 0 :(得分:2)
让我们看看。
了解异常的最简单方法是检查API,
首先,让我们打开the BigDecimal API
Exception in thread "main" java.lang.NumberFormatException
java.math.BigDecimal.<init>(Unknown Source)
表示您的代码在其主执行线程上引发了异常。异常是类型NumberFormatException
,它在BigDecimal
让我们看看API对此有何看法:
抛出: NumberFormatException - 如果in不是BigDecimal的有效表示。
(在输入字符数组中)。
因此,此异常意味着您正在创建具有无效值的BigDecimal。检查构造BigDecimal的代码。 BigDecimal上还有一堆其他构造函数,你会发现原因取决于你在那里使用的重载。
答案 1 :(得分:0)
如果输入String不是NumberFormatException
的有效表示,则文档声明将抛出BigDecimal
...因此检查创建BigDecimal
的代码是好的开始的地方。
答案 2 :(得分:0)
如果您收到使用它的值转换为BigDecimal。 例如: String receiveValue = request.getParameter(“xxx”); BigDecimal bigDecimal = new BigDecimal(receiveValue);
但问题是receiveValue为null或空值,因此它会发布此问题。
答案 3 :(得分:0)
错误消息告诉您byte[]
的内容不是可以解码的文本的数字。
你说的代码没有任何问题,没有理由怀疑编译器没有给你一个错误。
根据您提供的输入,您有运行时错误,因此输入存在问题。
答案 4 :(得分:0)
您可能还会在字符串中看到一些可能导致 NumberFormatException 的空格。修剪字符串。