Chociaż sytuacja konwersji z Double
s do BigDecimal
s poprawiła się nieco w porównaniu do JavyDlaczego istnieje niejawna konwersja z Float/Double na BigDecimal, ale nie z ciągu?
scala> new java.math.BigDecimal(0.2)
res0: java.math.BigDecimal = 0.20000000000000001110223024625156...
scala> BigDecimal(0.2)
res1: scala.math.BigDecimal = 0.2
i rzeczy jak
val numbers: List[BigDecimal] = List(1.2, 3.2, 0.7, 0.8, 1.1)
praca naprawdę dobrze, nie byłoby rozsądne, aby mieć domyślna konwersja, taka jak
implicit def String2BigDecimal(s: String) = BigDecimal(s)
dostępna domyślnie, która może konwertować ciągi znaków na BigDecimals takich jak to?
val numbers: List[BigDecimal] = List("1.2", "3.2", "0.7", "0.8", "1.1")
Albo ja czegoś brakuje i Scala rozwiązać wszystkie „problemy” Java z użyciem konstruktora BigDecimal
z wartości zmiennoprzecinkowej zamiast String
i BigDecimal(String)
nie jest w zasadzie już potrzebne w Scala?
To ma niewiele wspólnego z samym językiem Java, dlaczego ma być oznaczony jako "Java"? – MAK