java中数据类型的转换
2021/7/9 9:08:56
本文主要是介绍java中数据类型的转换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
自动转换
自动转换按从低到高的顺序转换。
不同类型数据间的优先关系如下: 低--------------------------------------------->高
byte,short,char-> int -> long -> float -> double
运算中,不同类型的数据先转化为同一类型,然后进行运算,转换规则如下:
操作数1类型 | 操作数2类型 | 转换后的类型 |
---|---|---|
byte、short、char | int | int |
byte、short、char、int | long | long |
byte、short、char、int、long | float | float |
byte、short、char、int、long、float | double | double |
强制转换
强制转换的格式是在需要转型的数据前加上“( )”,然后在括号内加入需要转化的数据类型。有的数据经过转型运算后,精度会丢失,而有的会更加精确,下面的例子可以说明这个问题。
public static void main(String[] args){ int x; double y; x = (int)34.56 + (int)11.2; // 丢失精度 y = (double)x + (double)10 + 1; // 提高精度 System.out.println("x=" + x); System.out.println("y=" + y); }
public static void main(String[] args) { int i = 128; byte b = (byte)i; double dou = i; //强制类型转换:(类型)变量名 高转到低 //自动类型转换 由低转换到高,会自动转换,不需要做特殊操作 /* 注意: 1.布尔类型的数据是不能进行类型转换的 2.不能把对象类型转换为不相干的类型 3.在进行高容量转换成低容量时,需要进行强制转换 4.转换的时候可以会存在内存溢出,或者精度问题 */ }
public static void main(String[] args) { //操作比较大的时候,注意溢出问题 //数字之间可以用下划线分割 int money = 10_0000_0000; int years = 20; int total = money*years; System.out.println(total);//-1474836480 long total2 = money*years;//-1474836480 默认是int 转换之前就已经存在问题了 System.out.println(total2); long total3 = money*((long)years);//此时在转换之前就全是是long数据类型了,就算结果就不会出现错误 System.out.println(total3); }
public static void main(String[] args) { //操作比较大的时候,注意溢出问题 //数字之间可以用下划线分割 int money = 10_0000_0000; int years = 20; int total = money*years; System.out.println(total);//-1474836480 long total2 = money*years;//-1474836480 默认是int 转换之前就已经存在问题了 System.out.println(total2); long total3 = money*((long)years);//此时在转换之前就全是是long数据类型了,就算结果就不会出现错误 System.out.println(total3); }
这篇关于java中数据类型的转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26消息中间件源码剖析教程
- 2024-11-26JAVA语音识别项目资料的收集与应用
- 2024-11-26Java语音识别项目资料:入门级教程与实战指南
- 2024-11-26SpringAI:Java 开发的智能新利器
- 2024-11-26Java云原生资料:新手入门教程与实战指南
- 2024-11-26JAVA云原生资料入门教程
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程