java中的长整型转换不起作用
我正在处理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时,将得到令人不快的结果,但是如果您加上额外的括号,
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很乐意帮忙