问题
在Scala中如何进行数值转换?比如Int类型转换为Long类型,Int类型转换为Double类型等等。
解决方案
不同于Java中的”强制转换”方法,Scala为所有数值类型提供了to*方法来实现数值类型之间的转换。示例如下:
代码语言:javascript复制scala> val b = a.to[Tab]
toByte toChar toDouble toFloat toInt toLong
toShort toString
scala> 19.45.toInt
res0: Int = 19
scala> 19.toFloat
res1: Float = 19.0
scala> 19.toDouble
res2: Double = 19.0
scala> 19.toLong
res3: Long = 19
scala> val b = a.toFloat
b: Float = 1945.0
如果你想要避免潜在的转换异常,在进行转换之前,你可以使用isValid方法来验证是否可以进行类型转换。例如Double对象有isValidInt和isValidShort之类的方法:
代码语言:javascript复制scala> val a = 1000L
a: Long = 1000
scala> a.isValidByte
res0: Boolean = false
scala> a.isValidShort
res1: Boolean = true
编译自:How to convert between numeric types in Scala