int、long、Integer、Long之间的相互转换

53 篇文章 2 订阅

一、int<->long

1. 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区值范围,会出现值溢出的问题

(2)利用BigDecimal转换

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

2. int -> long

(1)类型强制转换

 int numberInt = 123;
 long numberLong = numberLong;    // 因为long类型精度大于int类型精度,转换过程不会发生精度丢失情况,所以隐式强制转换即可

(2)利用BigDecimal转换

int numberInt = 100;
BigDecimal numBigDecimal = new BigDecimal(numberInt);
   // 或 numBigDecimal = BigDecimal.valueOf(numberInt);
long numberlong = numBigDecimal.longValue();

二、Long <-> Integer

1. Long转化为Integer

(1)使用Long的api

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

(2)利用String转换 

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

2. Integer转化为Long 

(1)使用Integer的api

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

(2)使用Long的构造方法 

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

(3)利用String 

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

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值