首页 > 解决方案 > 尽管变量的类型被声明为双精度,为什么 java 会给出一个 int 太大的错误?

问题描述

Java 为我的代码的相应行提供了integer number too large错误消息,我将在我的代码的相应段中用 ***** 表示:

...

if (input.hasNextDouble()) {
    double number = input.nextDouble();
    if (number >= 10000000000) //***** {
        System.out.print("The number is greater than 10 billion!");
    }
}

...

我认为 double 类型可以记录大约 15 个十进制数字。你能告诉我发生了什么事吗?

标签: java

解决方案


Java 抱怨源代码中的实际数字,即整数文字,而不是您为其选择的存储位置(这将需要自动转换)。由于语言说任何无后缀的数字都被解释为int,因此您需要为您希望该文字具有的类型添加一个后缀,例如dfor double

 number >= 10000000000D

推荐阅读