gpt4 book ai didi

java - 我得到一个意外的整数值

转载 作者:行者123 更新时间:2023-12-01 21:17:22 25 4
gpt4 key购买 nike

我正在调试一个程序,其输出应如下所示(尽管缩进有点奇怪):

Enter a number you dislike 9

9
X9
_________
81
x12345679
_________
Surprise 999999999
X1000
_________
"No Surprise"? 999999999000

这是我的代码:

    import java.util.Scanner;
import java.lang.Math;
public class Prog76a

{
public static void main (String[] args)
{
Scanner keyboard = new Scanner(System.in);

//Prompting the user to enter a number
System.out.print("Enter a number you dislike ");
int num = keyboard.nextInt();

int numA = num * 9;

int numB = numA * 12345679;

int numC = numB * 1000;






System.out.println(" ");
System.out.println(" " + num);
System.out.println(" X" + num);
System.out.println(" ____________");
System.out.println(" " + numA);
System.out.println(" x" + 12345679);
System.out.println(" ____________");
System.out.println("Surprise " + numB);
System.out.println(" X" + 1000);
System.out.println(" ____________");
System.out.println("\"No Surprise\"? " + numC);

}
}

这就是它的结果:

   Enter a number you dislike  9

9
X9
____________
81
x12345679
____________
Surprise 999999999
X1000
____________
"No Surprise"? -727380968

我完全不知道最后一行是如何/为何出现的为“-727380968”任何帮助将不胜感激。

最佳答案

这可能会溢出 int,其最大值约为 20 亿。尝试使用 long 而不是 int

这里是准确显示 int 最大值的 javadoc:https://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html#MAX_VALUE

这是我找到的一个快速链接,它说明了为什么底层位数学会将大数变成计算机读取为负数的值:https://www.cs.drexel.edu/~introcs/F2K/lectures/5_Scientific/overflow.html

关于java - 我得到一个意外的整数值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39782432/

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