为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

九州编程 2021-10-27 17:07:30
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,因此您需要为您希望该文字具有的类型添加后缀,例如dfor double

 number >= 10000000000D


查看完整回答
反对 回复 2021-10-27
?
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!");


查看完整回答
反对 回复 2021-10-27
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

答案应该是


因为10000000000是int并且它不能被存储,因为它大于2,147,483,647,这就是为什么你得到的错误整数太大


要解决问题,请Double通过附加d


if (number >= 10000000000d) //***** {

    System.out.print("The number is greater than 10 billion!");

}


查看完整回答
反对 回复 2021-10-27
  • 3 回答
  • 0 关注
  • 141 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信