java 中 long 到 int 的转换不起作用

long to int conversion in java not working

我正在处理 java 中的大数问题。

int temp =0;
long last = 218212982912L;
temp = (int) last%10;
last = last/10;

对于上面的代码行,我得到了

temp = -4 

在第一次迭代中。我不确定是什么问题。我已经尝试了很多在线可用的解决方案。

last%10

两边加上括号

在取模运算之前应用到 int 的转换

你能得到的最后一个正数是 2,147,483,647,当你明确地将一个较大的数字转换为 int 时,你会得到不愉快的结果,但如果你加上额外的括号,比如 (int) (someLong % 10),首先是长操作得到执行(这会导致更小的 long 值适合 int 内存space)然后你可以放心地将它转换为 int