数据类型转换
1)说明
- 自动类型提升:多种数据类型混合运算,自动提升到精度最大的数据类型。
- 高精度赋值到低精度,直接报错。
- 除了图中的隐式类型转换,都需要强制类型转换。
Byte Short Char
计算时会直接提升为Int
。
Boolean
不能参与整数浮点运算,不能隐式转换为整数。
2)练习
package chapter02
object Test08_DataTypeConversion {
def main(args: Array[String]): Unit = {
//(1)自动类型提升:多种数据类型混合运算,自动提升到精度最大的数据类型。
val a1: Byte = 10
val b1: Long = 2353
var result1: Long = a1 + b1
val result11: Int = (a1 + b1.toInt) //强制转换
//(2)高精度赋值到低精度,直接报错。
val a2: Byte = 10
val b2: Int = a2
// val c2: Byte = b2 //error
//(3)(byte short) 和char之间不会自动相互转换
val a3: Byte = 10
val b3: Char = 'b'
// val c3: Byte = b3 //error
val c3: Int = b3
println(c3)
//(4)如果要计算,这三者要转为Int类型
val a4: Byte = 12
val b4: Short = 25
val c4: Char = 'c'
val result4: Int = a4 + b4
val result44: Int = a4 + b4 + c4
println(result44)
}
}
