通用转换为数字
Generic conversion to Numeric
我想编写一个通用的转换函数,将 Double
序列转换为任何 Numeric
class,类似于:
def construct[T : Numeric](a: Seq[Double]): Seq[T] = {
val n = implicitly[Numeric[T]]
a.map { value =>
value
???
}
}
逆向很容易,使用Numeric
toDouble
,但我没有找到如何做这个方向的方法。怎么办?
有 n.fromInt(value.toInt)
,但如果您不想失去精度,那么 scala.math.Numeric
就不走运了。我建议实现你自己的类型 class:
trait Num[T] { def fromDouble(d: Double): T }
object Num { implicit val wateveryouneed = ... }
def construct[T](a: Seq[Double])(implicit n: Num[T]: Seq[T] =
a.map(n.fromDouble)
我想编写一个通用的转换函数,将 Double
序列转换为任何 Numeric
class,类似于:
def construct[T : Numeric](a: Seq[Double]): Seq[T] = {
val n = implicitly[Numeric[T]]
a.map { value =>
value
???
}
}
逆向很容易,使用Numeric
toDouble
,但我没有找到如何做这个方向的方法。怎么办?
有 n.fromInt(value.toInt)
,但如果您不想失去精度,那么 scala.math.Numeric
就不走运了。我建议实现你自己的类型 class:
trait Num[T] { def fromDouble(d: Double): T }
object Num { implicit val wateveryouneed = ... }
def construct[T](a: Seq[Double])(implicit n: Num[T]: Seq[T] =
a.map(n.fromDouble)