第六节 类型转换
程序员文章站
2022-06-08 08:29:09
...
同类型之间转行
精度小的可以往精度大的转换。
从大到小顺序
double > float > long > int > short(char) > byte
隐式转换
低精度往高精度转换
byte b = 3;
int c = b;
唯一的缺点就是浪费精度。
上述byte b=3;一个字节在农村中,转换成int,然而int是4个字节相当于3个字节浪费了。
强制转换
高精度转低精度要强制转换
强转语法:
目标类型变量=(目标数据类型)源数据
byte b = a;
//所以要强转
byte c = (byte) a;
这种强制转换可能会导致精度损失,比如
如下是没问题:
public static void main(String[] args) {
int a = 127;
byte c = (byte) a;
System.out.println("a = "+ a);
System.out.println("c = "+ c);
}
打印结果
a = 127
c = 127
如下就有问题:
public static void main(String[] args) {
int a = 128;
byte c = (byte) a;
System.out.println("a = "+ a);
System.out.println("c = "+ c);
}
打印结果:
a = 128
c = -128
结论或导致精度减少。因为byte范围是-128-127之间。
不同类型之间转换
java中对八种基本有对应的包装类,通过类有对应的方法,可以将String数据转换成基本数据类型。
String 转基本数据
static :有static修饰的方法直接通过类名调用。
语法:类名.方法名();
比如String转:
String a = "12";
int b = Integer.parseInt(a);
Integer.parseInt("");
Byte.parseByte("");
Short.parseShort("");
Double.parseDouble("");
//等等
基本数据转String
public static void main(String[] args) {
int a = 2;
long b = 5;
char c = 'd';
//可以通过连接“”转成string
String d = a+"";
//valueOf可以穿八种基本类型
String e = String.valueOf(a);
}
上述String.valueOf(a)和 Integer.parseInt("")
都是通过类名.方法名进行调用,因为这些方法都是static修饰的。
注意:static修饰的方法可以通过类名.方法名调用。
作者简介:一个有故事的程序员,我的微信号qiushuzhao222,欢迎大家找我聊天,记录你我的故事。