
object Test {

  def main(args: Array[String]): Unit = {
    import scala.math.Numeric
    import scala.math.Numeric.Implicits._

    val b = BigInt(Long.MaxValue) + 1

    def dbl[N :Numeric](n: N) = n.toDouble
    def flt[N :Numeric](n: N) = n.toFloat

    println(dbl(b) == b.toDouble)
    println(flt(b) == b.toFloat)
  }

}
