java - 尽管变量的类型被声明为双精度,为什么 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 抱怨源代码中的实际数字,即整数文字,而不是您为其选择的存储位置(这将需要自动转换)。由于语言说任何无后缀的数字都被解释为int
,因此您需要为您希望该文字具有的类型添加一个后缀,例如d
for double
:
number >= 10000000000D
推荐阅读
- python - 在 Graphene python 解析器中调用自定义方法
- java - 如何按列对 JTable 进行排序?
- android - 颤振错误:ErrorDioError [DioErrorType.RESPONSE]:Http 状态错误 [400]
- reactjs - 为什么这个“无法更新未安装的组件”修复工作?
- notifications - 使用发出的警报中的团队名称将协调失败警报动态路由到适当的团队松弛通道
- server - 当字段已经填写在父解析器中时,如何避免调用 Apollo Server 的嵌套解析器?
- python - 无法将 QMenu 项目中的“已检查”状态和自定义参数传递给连接的插槽
- java - 如何抑制空手道失败的功能日志
- typescript - lodash _.keyBy() 将数字转换为字符串
- reactjs - React - 如何获取 id 并使用它来删除