我的编码,我试图制作一个不会因用户的输入而崩溃的程序,程序将分割并打印出答案。我搜索过但找不到任何帮助! 对于小于100000000或199999999的数字,编码可以正常工作。
Scanner in = new Scanner(System.in);
double n1 = in.nextInt();
double n2 = in.nextInt();
double n3 = n1/n2;
System.out.println(n3);
答案 0 :(得分:2)
您正在使用in.nextInt()
,它将读取一个值小于2^31 -1
的整数(当然它会转换为double
)。但是当您提供超过(2^31) - 1
12589691475
的值时,nextInt()
无法读取它们,因为它们是非常大的数字。
改为使用in.nextDouble()
。
答案 1 :(得分:1)
使用
in.nextDouble();
或
in.nextLong();
答案 2 :(得分:0)
对于任意大数字,请使用java.math.BigInteger
或java.math.BigDecimal
。
Scanner in = new Scanner(System.in);
BigInteger n1 = new BigInteger(in.nextLine());
BigInteger n2 = new BigInteger(in.nextLine());
BigInteger n3 = n1.divide(n2);
System.out.println(n3);