如何将Int转换为BigDecimal?

时间:2019-07-02 12:19:31

标签: scala

我无法理解scala如何在scala中将Int转换为BigDecimal。

val a : BigDecimal = 1

上面的语句在理想情况下应该引发编译错误,但是可以正常编译。谁能解释一下这在Scala中如何发生?

1 个答案:

答案 0 :(得分:4)

这个问题的答案在于BigDecimal对象,该对象具有将Int转换为BigDecimal的隐式方法。

从scala的源代码中

object BigDecimal extends scala.AnyRef with scala.Serializable {
// all other methods
  implicit def int2bigDecimal(i : scala.Int) : scala.math.BigDecimal = { /* compiled code */ }

}

如果这能回答您的问题,请告诉我。