Long和Integer相互转换

Posted 哇~是小菜呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Long和Integer相互转换相关的知识,希望对你有一定的参考价值。

目录

一、int和long互相转换

(一)long转化为int

(1)类型强制转换

 long numberLong = 123L;// "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
 int numberInt = (int) numberLong;

注意:
int有4个字节,取值范围为[-231,231 - 1]
long有8个字节,[-263 ,263 -1]
如果long的值超过了int区值范围,会出现值溢出的问题:

就会得以下内容:

这是因为:当取值范围超过int的最大值时,会变为int取值范围的最小值,不会继续增长了。

(2)利用BigDecimal强制转换

long numberLong = 100L;
BigDecimal numBigDecimal = new BigDecimal(numberLong);
   // 或 numBigDecimal = BigDecimal.valueOf(numberLong);
int numberInt = numBigDecimal.intValue();

(二)int转化为long

(1)类型强制转换

 long numberLong = 123L;// "L"理论上不分大小写,但是若写成"l"容易与数字"1"混淆,不容易分辩。所以最好大写。
 int numberInt = (int) numberLong;

(2)利用BigDecimal强制转换

 int numberInt = 100;
 BigDecimal bigNumber = new BigDecimal(numberInt);
// 或者 BigDecimal bigNumber = BigDecimal.valueOf(numberInt);
 long numberLong = bigNumber.longValue();

二、Long和Integer的互相转换

(一)Long转化为Integer

(1)类型强制转化(不可用)


会出现报错

报编译错:无法转换的类型,Long不能被强制转化为Integer。

(2)使用Long的api

Long numberLong = new Long(1000L);
Integer intNumber = numberLong.intValue();

(3)利用String转换

Long longValue = new Long(1000l);
String strValue = longValue.toString();
// 或者 Integer intValue = new Integer(strValue);
Integer intValue = Integer.valueOf(strValue);

(二)Integer转化为Long

(1)类型强制转化(不可用)

(2)使用Integer的api

Integer intValue = new Integer(1000);
Long longValue = intValue.longValue();

(3)使用Long的构造方法

Integer intValue = new Integer(1000);
Long longValue = new Long(intValue);

(4)利用String

Integer intValue = new Integer(1000);
String strValue = intValue.toString();
Long longValue = new Long(strValue);

Java中long(Long)与int(Integer)之间的转换(转)

一、将long型转化为int型,这里的long型是基础类型:

long   a = 10;     
int b = (int)a;

二、将Long型转换为int型,这里的Long型是包装类型:

Long a = 10;
int b=a.intValue();

三、将int型转化为long型,这里的int型是基础类型:

int a = 10;
long b = (int)a;

四、将Integer型转化为long型,这里的Integer型是包装类型:

int a = 10;
Long b = a.longValue();

五、还有其它的方法,比如包装类型一般都有parseLong的parseXXX的静态方法,不过一般只能传String类型。

总结:这里的转化就是要注意java的八种基础数据类型以及八种包装数据类型的区别。

 

参考:

http://blog.csdn.net/u014039577/article/details/37925611(以上内容转自此篇文章)

以上是关于Long和Integer相互转换的主要内容,如果未能解决你的问题,请参考以下文章

java 字符串与整型相互转换

Java整型与字符串相互转换(转)

JAVA的整型与字符串相互转换

JAVA字符串与整形浮点类型之间的相互转换总结

Java中long(Long)与int(Integer)之间的转换(转)

Java中怎么将Long类型转换成Integer或int类型?