Java数据类型转换
自动类型转换规则:
自动转换也要小心数据溢出问题,看下面的例子。
int count = 100000000;
int price = 1999;
long totalPrice = count * price;
编译没任何问题,但结果却输出的是负数,这是因为两个 int 相乘得到的结果是 int, 相乘的结果超出了 int 的代表范围。这种情况,一般把第一个数据转换成范围大的数据类型再和其他的数据进行运算。
int count = 100000000;
int price = 1999;
long totalPrice = (long) count * price;
强制类型转换:
代码示例:
package com.jredu.ch02;
public class Ch04 {
public static void main(String[]args){
//自动类型转换
//基本数据的自动类型转换只有7种数据类型,除了boolean
//基本原则:低级别可以直接转高级别
// char
//byte->short->int->long->float->double
//运算时的自动转换条件:1、两种数据类型要兼容,2、目标类型大于原类型
int a=10;
double b=1.1;
b=b+a;
a=a+(int)b;
System.out.println(b);//b=11.1
System.out.println(a);//a=10+11=21
}
}
package com.jredu.ch02;
public class Ch05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//强制类型转换
//高级别转低级别时,必须要进行强转
//是否强制转换取决于数据类型级别的高低,不取决于数据的实际值。
int a=330;
short b=(short)a;
short c=350;//直接自变量赋值 ,不需要转换类型
int e=(int)-1.1;
System.out.print(e); //e=-1
}
}
-------------------
来源:****
原文:https://blog.****.net/xuehyunyu/article/details/76216536
版权声明:本文为博主原创文章,转载请附上博文链接!