如何在Java中将long转换为int ?


当前回答

从Java 8开始 你可以使用:数学。toIntExact(长值)

参见JavaDoc: Math.toIntExact

返回长参数的值;如果值溢出int,则抛出异常。

数学的源代码。在JDK 8中的toIntExact:

public static int toIntExact(long value) {
    if ((int)value != value) {
        throw new ArithmeticException("integer overflow");
    }
    return (int)value;
}

其他回答

手动类型转换可以在这里完成:

long x1 = 1234567891;
int y1 = (int) x1;
System.out.println("in value is " + y1);

我也遇到过这个问题。 为了解决这个问题,我首先将我的long转换为String,然后转换为int。

int i = Integer.parseInt(String.valueOf(long));
Long l = 100;
int i = Math.round(l);
long x = 3;
int y = (int) x;

但是假设long可以表示为int,你们知道这两者的区别吗?

long x;
int y;
y = (int) x

只要数字小于2147483647,就可以将long类型转换为int类型而不会出错。