Java 为我的代码的相应行提供了整数太大的错误消息,我将在代码的相应段中用 ***** 表示:...if (input.hasNextDouble()) { double number = input.nextDouble(); if (number >= 10000000000) //***** { System.out.print("The number is greater than 10 billion!"); }}...我认为double类型可以记录大约15个十进制数字。你能告诉我这是怎么回事吗?
3 回答
森林海
TA贡献2011条经验 获得超2个赞
Java 抱怨源代码中的实际数字,即整数文字,而不是您为其选择的存储位置(这将需要自动转换)。由于该语言说任何无后缀的数字都被解释为int
,因此您需要为您希望该文字具有的类型添加后缀,例如d
for double
:
number >= 10000000000D
UYOU
TA贡献1878条经验 获得超4个赞
您将 int 与 double 进行比较的事实不会改变可接受的 int 值。
如果您将数字设为两倍,则可能会更清楚。
if (number > 1e10) {
System.out.print("The number is greater than 10 billion!");
顺便说一句,>如果消息“大于”,我会使用,否则我会
if (number >= 1e10) {
System.out.print("The number is greater than, or equal to 10 billion!");
守着星空守着你
TA贡献1799条经验 获得超8个赞
答案应该是
因为10000000000是int并且它不能被存储,因为它大于2,147,483,647,这就是为什么你得到的错误整数太大
要解决问题,请Double通过附加d
if (number >= 10000000000d) //***** {
System.out.print("The number is greater than 10 billion!");
}
添加回答
举报
0/150
提交
取消