2010-11-26 69 views
0

我正面临大数小数的问题。下面的代码片段会解释我的问题:大十进制解析问题

BigDecimal parsedValue = (BigDecimal) decimalFormat.parse(input); 

这里输入一个字符串类型。现在假设输入的值是135abc24在这种情况下,parsedValue的值是但我想检查这样的输入并给出错误而不是截断字符串和其余部分。只是想添加输入字符串也可能包含指数nos,所以我甚至不能检查数字字符串。请让我知道,如果你想进一步的信息或或问题不明确,

在此先感谢。

回答

6

您可以使用BigDecimal的String constructor创建BigDecimal(请参阅链接了解详细信息),并在您的输入字符串之前应用您希望的任何转换。如果输入不是有效表示,构造函数会抛出一个NumberFormatException

2

根据documentationDecimalFormat.parse()支持以ParsePosition引用的形式的第二个参数,该参数用解析停止的位置进行更新。然后,您可以将它与字符串的开头进行比较,并确定整个字符串是否被接受。

+0

嗨放松,谢谢你的回复。我没有尝试过这个选项,因为我用Jens的答案得到了期望的结果。但我会试试这个,肯定会在这里更新。谢谢! – Harmit 2010-11-29 11:59:25

+0

是的,这是解决问题的另一种选择。正在经历老问题时,我发现了我的评论。晚点比从未更好:) – Harmit 2012-09-03 10:12:24