Double
에서
BigDecimal
로의 변환의 상황이 Java
왜 Float/Double에서 BigDecimal로 암시 적으로 변환 되나 String에서는 암시 적으로 변환되지 않습니까?
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)
와 같은 변환은 String을 BigDecimal로 변환 할 수 있습니까?
val numbers: List[BigDecimal] = List("1.2", "3.2", "0.7", "0.8", "1.1")
아니면 스칼라는 String
대신 부동 소수점 값을 사용하여 BigDecimal
생성자를 사용하여 Java의 모든 "문제"를 해결했으며 스칼라에서는 기본적으로 BigDecimal(String)
가 더 이상 필요하지 않습니다.
이것은 Java 언어 자체와 관련이 거의 없으며 "Java"태그가 있어야하는 이유는 무엇입니까? – MAK