我面临大十进制问题。以下代码段将解释我的问题:
BigDecimal parsedValue = (BigDecimal) decimalFormat.parse(input);
此处输入是字符串类型。现在假设输入的值 135abc24 ,在这种情况下,parsedValue的值是 135 但是我想检查这样的输入并给出错误而不是截断字符串和其余的部分。只想添加输入字符串也可能包含指数nos,所以我甚至无法检查数字字符串。如果您想了解更多信息或问题尚未明确,请与我们联系。
提前致谢。
答案 0 :(得分:6)
您可以使用BigDecimal的String constructor创建BigDecimal(有关详细信息,请参阅链接),并在您的输入字符串之前应用您希望的任何转换。如果输入不是有效表示,则构造函数抛出NumberFormatException
。
答案 1 :(得分:2)
根据documentation,DecimalFormat.parse()
支持ParsePosition
引用形式的第二个参数,该参数随解析停止的位置而更新。然后,您可以将其与字符串的开头进行比较,并确定是否接受了整个字符串。