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相互转换的主要内容,如果未能解决你的问题,请参考以下文章