在Java中,类型转换涉及到的情况主要有以下三种:
①隐式类型转换:字节数小的数据类型自动向字节数大的数据类型转换,整数类型自动转换为小数类型。 byte->short->int->long->float->double
注意:为什么long的字节数比float大,还可以自动转换呢。
这是因为float为浮点型数据,其采用小数规则存储,致使float的表示范围会比long大,所以可以自动转换,但这种情况有可能会损失精度。
②显示类型转换:也叫强制类型转换,即牺牲精度强制进行类型转换。
③数据类型自动提升:
Java中规定:在参与运算时,或在表达式中(自增自减除外),所有的byte、short、char类型的数据会被自动提升为int类型。
类似的规定还有:如果其中一个操作数是long/float/double类型,那么对应的计算结果也分别对应为long/float/double类型。
如下图所示:其中实线代表这两种数据类型之间的转换无精度丢失,而虚线则代表有可能会发生精度丢失问题。
Java数据类型转换
于 2022-02-22 00:13:36 首次发布