我正在处理一个问题。以下代码适用于小字符串但在这种情况下我必须使用长数字。什么可能是最好的解决方案?
它给很长的字符串带来错误,所以如何解决最好的方法。顺便说一下它是UVA424。网上有很多解决方案。我喜欢解决问题,因此它是代码的一部分
import java.util.Scanner;
public class IntegerInquiry {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
long total = 0;
while (input.hasNext()) {
String i = input.next();
if(i.equals("0")) break;
int size = i.length();
if(size <=100 ){
long a = Long.parseLong(i);
total = total+a;
}
}
System.out.println(total);
}
}
答案 0 :(得分:0)
对于大数字,您可以使用BigDecimal
Scanner input = new Scanner(System.in);
BigDecimal bigDecimal = new BigDecimal(0);
while (input.hasNext()) {
String i = input.next();
if (i.equals("0"))
break;
bigDecimal = bigDecimal.add(new BigDecimal(i));
}
input.close();
System.out.println("BigDecimal " + bigDecimal);
System.out.println("Long " + bigDecimal.longValue()); // caution - narrowing