数值类型间转换
字符串转数值(解析)
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