博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java中的类型转换
阅读量:5737 次
发布时间:2019-06-18

本文共 893 字,大约阅读时间需要 2 分钟。

hot3.png

测试的代码:

public class CastTests {    public static void main(String[] args) {	byte b = 1;	short s = 1;	int i = 1;	float f = 1f;			//自动转换。精度低的类型可以自动转为精度高的类型。	//自动转换方向:byte-->short-->int-->long-->float-->double	s = b;//byte-->short	f = i;//int-->float			//需要强转。精度低的转为精度高的类型会丢失精度。	b = (byte) s;//short-->byte	s = (short) i;//int-->short			//自动转换。"+="操作会自动执行强制转换。	b += s;//相当于"b = (byte)b + s"。	b -= 1;//相当于"b = (byte)b - 1"。	s *= f;//相当于"s = (short)b * f"。			//经过算数运算符操作,右边的类型只能是int,long,float,double。	s = (short) (s + b);//(s + b)类型为int	b = (byte) (b / b);//(b / b)类型为int	i = (int) (i * f);//(i * f)类型为float	f = i + f;//float-->float	f = i * b;//int-->float	i = s / b;//int-->int    }}

注意几点:

1、自动类型转换是低精度往高精度方向,反之都需要强制转换,会损失精度。

2、"+=, -=, *=, /="四个操作会执行强制类型转换,有时会丢失精度。

3、算数运算符操作之后的数据精度至少是int。也就是说,比如byte与byte类型相加减,结果类型是int或者更高精度(long,float,double)。

转载于:https://my.oschina.net/u/2411391/blog/620912

你可能感兴趣的文章
算法(第4版) Chapter 1
查看>>
前端技术选型的遗憾和经验教训
查看>>
“亲切照料”下的领域驱动设计
查看>>
GIT
查看>>
微软宣布公开预览其内容分发网络
查看>>
SRE工程师到底是做什么的?
查看>>
解读:Red Hat为什么收购Ansible
查看>>
PHP json_encode() 函数介绍
查看>>
MyEclipse8.6 web中jsp页面出现jquery,dojo等代码自动提示
查看>>
js动态设置元素高度
查看>>
Ossim下的安全合规管理
查看>>
如何让一个linux命令后台运行,而不受终端影响
查看>>
DelphiWebMVC框架下BPL热部署实现
查看>>
spring-boot | 日志
查看>>
Cordova Hot Code Push Plugin -9 错误治疗方法
查看>>
C++与MySQL的冲突
查看>>
siki学习之观察者模式笔记
查看>>
PYQT窗口可视化编程
查看>>
单元测试
查看>>
spring.net 继承
查看>>