java - 为什么转换为 int 给我 8 而不是 0?
问题描述
对不起,如果这很简单。这让我困惑了一段时间。在以下代码中:
public class Main {
public static void main(String[] args) {
long a = 10000000000L;
System.out.println(a % 10);
}
}
我得到的输出为 0,这是我所期望的。但是当我像这样转换为 int 时,
public class Main {
public static void main(String[] args) {
long a = 10000000000L;
System.out.println((int)a % 10);
}
}
我得到 8 作为输出而不是 0。我不明白发生了什么。为什么施法后0变成8?
解决方案
发生这种情况是因为首先将值转换a
为 int 然后执行模块。
你想做的是:
public class Main {
public static void main(String[] args) {
long a = 10000000000L;
System.out.println((int)(a % 10));
}
}
推荐阅读
- php - 最终用户尚未完成身份验证和身份验证登录流程 eBay
- kubernetes - 哪个是详细了解 Kubernetes 中 client-go repo 重构的最佳文档
- rxjs - 使用单一模型在多个组件之间传递数据并保存它?
- javascript - Ionic viewchild 变量在 ng-switch 中不可用
- c# - Entity Framework Core:Fluent api 多对多
- javascript - Web 套接字在 javascript 中不能与 SSL 和 WSS 一起使用
- javascript - 使用 Javascript 读取本地 JSON 文件
- c - memcpy重写不起作用
- linux - 如何使用awk,sed在两个特定单词之间打印文本?
- javascript - 如何在 Twilio 中列出所有连接的频道?