【Java】【30】数据基本类型的转换

本文详细介绍了Java中各种基本数据类型之间的转换方法,包括int、float、double、String及BigInteger等之间的相互转换,探讨了转换过程中可能遇到的精度丢失问题,并提供了使用BigDecimal处理精度问题的解决方案。

前言:

基本类型:Character, Byte, Short, Integer, Long, Float, Double, Boolean.

注:部分精度丢失问题未确认

正文:

1,boolean

boolean类型与其他基本类型不能进行类型的转换,可以用if..else..或者三元表达式转换

2,int

int i = 10;

int 转化成String:

(1)String str = Integer.toString(i);

(2)String str = String.valueOf(i);

(3)String str = i + " ";

int 转化成float:

(1)强制转换 float b  =  (float) i;

(2)i*1.0 或 i/1.0 float b = i*1.0;

int 转化成double:

(1)double a = i;

int 转化成bigdecimal:

(1)BigDecimal number = BigDecimal.valueOf((int) i);

3,String

String str = "123456";

String 转化成int:

(1)int i = Integer.parseInt(str);

(2)int i = Integer.valueOf(str).intValue();

String 转化成float:

(1)float f = Float.parseFloat(str);

String 转化成double:

(1)double d = Double.valueOf(str).doubleValue();

4,float

float f = 0.1f或 float f = (float) 0.1;

float 转化成int:

(1)int i = (int) f;  

float  转化成String:

(1)String str = String.valueOf(a);

(2)String str = a + " ";

float  转化成double:

(1)double d = f;

(2)精度不丢失:

float f = 127.1f;

BigDecimal b = new BigDecimal(String.valueOf(f));

double d = b.doubleValue();

5,double

double d = 10.23;

double 转化成int:

(1)只取整数部分 :int i = (int) d;

(2)int i = (new Double(d)).intValue();

double 转化成String:

(1)String str = Double.toString(d);

(2)String str  = d.ToString("r");

(3)String str = String.valueOf(d);

double 转化成float:

(1)float f = (float)d;

6,备注

1,所有数据类型的可以强制转换,但可能会存在精度丢失的问题

2,BigDecimal可处理精度问题

3,截取一定的位数:

      DecimalFormat decimalFormat = new DecimalFormat("##0.0");
      float Erate = Float.parseFloat(decimalFormat.format(this.DoneQTY * 100.0F / this.PlanQTY));

       ——  decimalFormat.format(this.DoneQTY * 100.0F / this.PlanQTY)为String类型

参考资料

Java:数据类型转换 - 子 孑 - 51CTO技术博客: http://zhangjunhd.blog.51cto.com/113473/17552/

java int short long float double 大整理(不要错过)-hxz_zt-ChinaUnix博客  : http://blog.chinaunix.net/uid-26930580-id-4175110.html

Java中float和double转换的问题?-优快云论坛-youkuaiyun.com-中国最大的IT技术社区 : http://bbs.youkuaiyun.com/topics/340231509

float转int 四舍五入问题 - 非著名码农的专栏 - 博客频道 - youkuaiyun.com : http://blog.youkuaiyun.com/ropai/article/details/19907847

BigDecimal用法详解 - Ruthless - 博客园 : http://www.cnblogs.com/linjiqin/p/3413894.html

转载于:https://www.cnblogs.com/huashengweilong/p/11043975.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值