我得到这个错误,每当我跑我的程序:数字格式异常错误
Exception in thread "main" java.lang.NumberFormatException: For input string: "9999997560"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Integer.parseInt(Integer.java:461)
at java.lang.Integer.valueOf(Integer.java:554)
at jsobcpuburnerpd3.Main.main(Main.java:22)
Java Result: 1
程序有两种做-while循环是几乎相同的,而第一部作品完美。我只有第二个问题。
BigDecimal lower = new BigDecimal("1000001520");
BigDecimal upper = new BigDecimal("9999997560");
int var = 2520;
String strL = lower.toString();
Integer intL = Integer.valueOf(strL);
String strU = upper.toString();
Integer intU = Integer.valueOf(strU);
两个数字都有相同数量的数字,并以相同的方式转换为整数。两者在循环中的处理方式几乎相同。
intL = intL + var;
intU = intU - var;
我也尝试这种不从的BigDecimal转换为字符串,并直接输入数字为String,但仍然得到了同样的错误。
编辑我使用BigDecimal,因为它是我的老师希望我们在我们的工作中使用的一部分。我知道这不是必要的。
为什么你开始用'BigDecimal',将其转换为一个'String'(你已经有了,因为你contrusted了'BigDecimal'转换的BigInteger的为整型与它)只是为了使一个'整数'呢?! – Tunaki
您的第一个错误是做出这样的假设:_两个数字具有相同数量的数字_以任何方式与数据类型相关。 – Savior