数值类型间转换
字符串转数值(解析)
Scala提供了将字符串解析为数值的方法。请看下面的代码:
// 字符串转数值(解析)
println("100".toInt) // 100
println("100".toDouble) // 100.0
println("100".toFloat) // 100.0
println("1".toLong) // 1
println("1".toShort) // 1
println("1".toByte) // 1
需要注意的是,如果字符串无法解析为数据的话,那么这些方法可能会抛出通常的Java NumberFormatException异常。
BigInt和BigDecimal实例也可以直接从字符串创建(也可以抛出NumberFormatException):
val bi = BigInt("1")
val bd = BigDecimal("3.14159")
println(bi) // 1
println(bd) // 3.14159
数值之间类型的转换
不同类型的数值之间也可以相互转换:
// 数值之间类型的转换 println(19.45.toInt) // 19 println(19.toFloat) // 19.0 println(19.toDouble) // 19.0 println(19.toLong) // 19 val a = 3 val b = a.toFloat println(b) // 3.0 // 判断是否可转换 val a2 = 1000L println(a2.isValidByte) // false println(a2.isValidShort) // true
指定值类型
可以像下面这样指定值的类型:
// 指定值类型
val a3 = 1
val a4 = 1d
val a5 = 1f
val a6 = 1000L
// 另一种方式是指定变量的类型
val a7 = 0: Byte
val a8 = 0: Int
val a9 = 0: Short
val a10 = 0: Double
val a11 = 0: Float
val a12:Byte = 0
val a13:Int = 0
可以在数字前面加上前导的0x或0X来创建十六进制值,并将它们存储为一个Int或Long型:
val a14 = 0x20 val a15 = 0x20L