尽管与Java相比,从Double转换为BigDecimal的情况有所改善。
默认情况下可用,可以将字符串转换为BigDecimal,如下所示?
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)
默认情况下可用,可以将字符串转换为BigDecimal,如下所示?
val numbers: List[BigDecimal] = List("1.2", "3.2", "0.7", "0.8", "1.1")
我是否漏掉了什么,Scala使用浮点数值而不是字符串来使用BigDecimal
构造函数解决了Java的所有“问题”,因此在Scala中基本上不再需要BigDecimal(String)
?