java中的长整型转换不起作用

java中的长整型转换不起作用,java,type-conversion,long-integer,Java,Type Conversion,Long Integer,我正在处理java中的一个大数字问题 int temp =0; long last = 218212982912L; temp = (int) last%10; last = last/10; 对于上面的代码行,我得到 temp = -4 在第一次迭代中。我不确定是什么问题。我在网上尝试了很多可用的解决方案。在last%10 在模运算之前应用对int的强制转换可以得到的最后一个正值是2147483647,当您显式地将较大的数字转换为int时,将得到令人不快的结果,但是如果您加上额外的括号,

我正在处理java中的一个大数字问题

int temp =0;
long last = 218212982912L;
temp = (int) last%10;
last = last/10;
对于上面的代码行,我得到

temp = -4 

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

last%10


在模运算之前应用对int的强制转换

可以得到的最后一个正值是
2147483647
,当您显式地将较大的数字转换为int时,将得到令人不快的结果,但是如果您加上额外的括号,如
(int)(someLong%10)
,首先执行长运算(这会导致适合int内存空间的较小长值)然后您可以将其转换为int而不必担心

第2行缺少分号。我不知道这是否是从您的项目中复制/粘贴的,我不确定这是否会导致您的问题,但我只是说。您的代码无法编译。您需要添加“L”给号码。谢谢。这只是一段代码的一部分,我刚才在这里输入它是为了提问。@denis很乐意帮忙