java3——数据类型转换
来源:互联网 发布:方媛 淘宝店 编辑:程序博客网 时间:2024/06/05 15:41
基本数据类型转换
在8种基本数据类型中,布尔型是不可以和其他数据类型进行运算的,所以这里不对布尔型进行试验。在之前的博文中说过,java是一门强类型的语言。所谓的强类型就是指java语言对数据类型要求严格,不同类型数据不可以进行运算。但是试想一下,默认的int类型,比如5,和一个double类型的3.3进行相加运算,如果不被允许就有些天理难容了。那么一定存在一种规律,让不同类型之间可以互相转换然后进行运算,通过一些代码来总结出规律!
byte,shor,char
public class TestVar6 { public static void main(String args[]) { byte b1=111-33;//注意右侧的赋值,是两个默认的int计算结果 System.out.println(b1);//78 /* byte b2=127+1; byte类型的表数范围是-128~127 这里会报错,同样也是两个int相加赋值,但是超出了byte类型的表数范围 */ short sh1=33333-3333; System.out.println(sh1);//30000 /* short类型的表数范围为正负30000 运算方式与byte类型基本一致,只需要注意表数范围 */ int num1=88+'a'; System.out.println(num1);//185,'a'=97;这里的char类型'a'在Unicode编码表中对应的就是97. char ch1='a'+88; System.out.println(ch1);//i /* byte、short、char这三种类型比较特殊,在运算中,都是以int的方式出现,只要不超出他们的表数范围,会自动转换成int类型进行计算 */ }}
int,long,double,float
public class TestVar6 { public static void main(String args[]) { long l1=900000+'a'+3; System.out.println(l1);//900100; double d1=3.2+2+'a'+90L; System.out.println(d1);//192.2 float f1=3.2f+2+'a'+90L; System.out.println(f1);//192.2 /* 一些报错的情况: int i=3.3+5; //这里不能把double类型赋值给int float f2=44.4+3.5f; //double + float的结果为double,不可以赋值给float类型 long l2=3.3f+3.4f; long l3=5.5+5.4; //long类型不可以接收float和double */ }}
强制转换
如果想让一个int类型变量强行去接收一个double数据,或者说让一个低精度类型变量接收一个高精度类型的值,需要怎么做呢?看一段代码:
public class test{ public static void main(String args[]){ double d=8.8; int i=(int)(d+1);//强制转换 System.out.println(i);//输出了9 }}
发生了什么? 8.8+1=9? ~这就是强制转换的弊端。在运算的过程中,由于高精度数据强行转换成了低精度,导致精度丢失,最后的结果就不会像我们想象的那么准确了。
结论:
在运算中,有一个由低到高的等级: byte,short,char----->int---->long ----->float---->double 这些类型参与到运算表达式中去的时候,整个运算式按照级别最高的进行计算。 其余的要转化成为最高类型的计算。强制转换可以让高精度类型强行转换为低精度,但是会丢失一部分数据。
阅读全文
0 0
- java3——数据类型转换
- java3:类型转换(type casting)
- java3
- java3
- java3
- java3
- java3
- java3
- java3
- java3
- Java3
- java3
- java3
- java3
- java3
- java3
- think in java3学习心得之——Reusing class
- Effective java3——覆盖equals方法的通用约定
- 区块链1.0:货币
- 如何让Outlook随系统启动+关闭变为后台运行
- ThreadLocal解析
- 数据库设计的6个阶段
- Python学习02-基础语法
- java3——数据类型转换
- printf 的基本使用
- 线程安全与可重入函数
- 数学题找规律
- Django1.11.1解决 Forbidden (403) CSRF verification failed. Request aborted.
- PAT 1006. 换个格式输出整数 (15) —— Java
- iptables不完全手册
- 拥塞控制之慢开始和拥塞避免
- Java-按指定顺序执行线程