【问题标题】:long to int conversion in java not workingjava中的long到int转换不起作用
【发布时间】:2016-07-30 11:56:40
【问题描述】:

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

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

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

temp = -4 

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

【问题讨论】:

  • 您在第 2 行缺少分号。我不知道这是否是从您的项目中复制/粘贴的,我不确定这是否会导致您的问题,但只是说。
  • 您的代码无法编译。您需要在数字中添加“L”。
  • 谢谢。它只是我刚刚在这里输入的代码的一部分。

标签: java type-conversion long-integer


【解决方案1】:

你能得到的最后一个肯定是2,147,483,647,当你将一个更大的数字显式转换为int时,你会得到令人不快的结果,但如果你加上像(int) (someLong % 10)这样的额外括号,首先会执行长操作(这会导致在适合 int 内存空间的较小 long 值中),然后您可以将其转换为 int 而无需担心

【讨论】:

    【解决方案2】:

    last%10 周围加上括号

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

    【讨论】:

    • @denis 乐于助人
    猜你喜欢
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 2020-11-21
    • 1970-01-01
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    • 2015-02-28
    相关资源
    最近更新 更多