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

时间:2016-04-09 04:39:07

标签: java type-conversion long-integer

我正在研究java中的大数字问题。

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

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

temp = -4 

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

2 个答案:

答案 0 :(得分:5)

将括号括在last%10

附近

在模数运算之前正在应用cast to int

答案 1 :(得分:1)

你可以获得的最后一个积极因素是2,147,483,647,当你明确地将一个更大的数字转换为int时,你会得到令人不快的结果但是如果你加上(int) (someLong % 10)这样的额外括号,首先是长操作得到执行(导致较小的长值,适合int内存空间),然后你可以毫无顾虑地将其转换为int