gpt4 book ai didi

java - 解析数字时出现 NumberFormatException

转载 作者:行者123 更新时间:2023-12-03 08:20:50 27 4
gpt4 key购买 nike

String str="123456.7855456677";
ParsePosition parsePosition = new ParsePosition(0);
NumberFormat numberFormat=new DecimalFormat();
Number number=numberFormat.parse(str, parsePosition);

if(parsePosition.getIndex()!=str.length())
{
throw new IllegalArgumentException();
}

numberFormat.setMaximumFractionDigits(2);
numberFormat.setRoundingMode(RoundingMode.HALF_UP);
double value=Double.parseDouble(numberFormat.format(number));
System.out.println(value);

这段代码中String类型变量str的值可以是任意动态值,假设用户可以自由输入任意字符串。

倒数第二行 中的Double.parseDouble() 方法导致抛出java.lang.NumberFormatException

像往常一样,删除行 numberFormat.setMaximumFractionDigits(2); 并将 RegEx 设置为 DecimalFormat 类的重载构造函数,

NumberFormat numberFormat=new DecimalFormat("#.##");

抑制异常。

那么,为什么它不工作呢?

最佳答案

如果你可以调试代码然后检查这一行 numberFormat.format(number) 它给出了一个包含可能成为异常原因的逗号的数字,检查这个 123,456.79 这个逗号不应该在那里...希望这会有所帮助。

关于java - 解析数字时出现 NumberFormatException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14808903/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com