【发布时间】:2016-04-16 09:29:09
【问题描述】:
我有以下方法,它返回两点之间距离的绝对值作为Int。
def absDist(a: Tuple2[Int, Int], b: Tuple2[Int, Int]): Int = {
((scala.math.pow(a._1 - b._1, 2) + scala.math.pow(a._2 - b._2, 2)): Int)
}
但是类型不能转换:
Expression of type Double doesn't conform to expected type Int
为什么会这样?我的转化看起来不错。
【问题讨论】:
-
可能您已经知道这一点并且已经掌握了它,但是将双精度数转换为整数会导致精度损失。
-
您不能通过在
: Int后面加上Double类型的表达式将其转换为Int。这样做与尝试将Double值分配给Int类型的变量相同——它不会自动转换它,并且您会从编译器中得到一个错误。显式指定类型与转换为该类型不同。请改用toInt。
标签: scala casting type-conversion