我得到一个意外的整数值

时间:2016-09-30 01:40:36

标签: java debugging

我正在调试一个程序输出应该是这样的程序,(虽然缩进有点不稳定):

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

我绝对不知道这个世界是如何/为什么最后一行出现的 be" -727380968" 任何帮助都将非常感激。

1 个答案:

答案 0 :(得分:3)

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

以下是javadoc,其中显示了int的最大值: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