Хотя ситуация с Double
с в BigDecimal
с немного улучшилась по сравнению с Java
scala> new java.math.BigDecimal(0.2)
res0: java.math.BigDecimal = 0.20000000000000001110223024625156...
scala> BigDecimal(0.2)
res1: scala.math.BigDecimal = 0.2
и тому подобные
val numbers: List[BigDecimal] = List(1.2, 3.2, 0.7, 0.8, 1.1)
работает очень хорошо, не было бы разумно иметь неявное преобразование, подобное
implicit def String2BigDecimal(s: String) = BigDecimal(s)
доступно по умолчанию, которое может конвертировать строки в большие десятичные числа, как это?
val numbers: List[BigDecimal] = List("1.2", "3.2", "0.7", "0.8", "1.1")
Или я что-то упустил, и Scala разрешил все «проблемы» Java с помощью конструктора BigDecimal
со значением с плавающей запятой вместо String
, а BigDecimal(String)
в Scala больше не требуется? *