java - 当给定高值时程序崩溃

标签 java int double java.util.scanner system

我的编码,我试图制作一个程序,无论用户输入什么,都不会崩溃,该程序将划分并打印出答案。我已经搜索过但找不到任何帮助! 对于小于 100000000 或 199999999 的数字,编码工作正常,您明白了。

Scanner in = new Scanner(System.in);
double n1 = in.nextInt();
double n2 = in.nextInt();
double n3 = n1/n2;
System.out.println(n3);

最佳答案

您正在使用 in.nextInt() 它将读取一个值小于 2^31 -1 的整数(当然它会转换为 double )。但是,当您给出的值大于 (2^31) - 1 (如 12589691475)时,nextInt() 无法读取它们,因为它们非常大数字。

改用in.nextDouble()

关于java - 当给定高值时程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46168577/

相关文章:

java - 更改 Android 上的小数点分隔符

python - 如何将 Date 对象传递给 mongo 数据库,它在传递 mongo 数据库后转换为 Int64 。如何使用 pymongo 做到这一点

java - 在java中更改整数的值

Javascript:将 Math.sqrt 转换为 int?

java - 以错误的编码读取属性文件中的属性

java - XxxController_Roo_GvNIXDatatables.aj 未针对 Xxxcontroller.java 类中的更改进行更新

java方法接受对象数组,然后返回一个对象数组

c# - 在 DataGridTextColumn 中,在绑定(bind)到 double 值类型的列上,.05 被转换为 5

java - JPA 类型的搜索查询

java - 尝试根据 double 绘制线条但没有显示?