Mặc dù tình hình chuyển đổi từ Double
s để BigDecimal
s đã được cải thiện một chút so với JavaTại sao có một chuyển đổi ngầm từ Float/Đôi thành BigDecimal, nhưng không phải từ chuỗi?
scala> new java.math.BigDecimal(0.2)
res0: java.math.BigDecimal = 0.20000000000000001110223024625156...
scala> BigDecimal(0.2)
res1: scala.math.BigDecimal = 0.2
và những thứ như
val numbers: List[BigDecimal] = List(1.2, 3.2, 0.7, 0.8, 1.1)
công việc thực sự tốt, nó sẽ không được hợp lý để có một chuyển đổi tiềm ẩn như
implicit def String2BigDecimal(s: String) = BigDecimal(s)
có sẵn theo mặc định có thể chuyển đổi chuỗi thành BigDecimals như điều này?
val numbers: List[BigDecimal] = List("1.2", "3.2", "0.7", "0.8", "1.1")
Hoặc tôi thiếu cái gì đó và Scala giải quyết tất cả các "vấn đề" của Java với việc sử dụng các nhà xây dựng BigDecimal
với một giá trị dấu chấm thay vì một String
và BigDecimal(String)
về cơ bản là không cần thiết nữa trong Scala?
Điều này ít liên quan đến chính ngôn ngữ Java, tại sao nó được gắn thẻ "Java"? – MAK