soc*_*soc 6 floating-point scala implicit bigdecimal
虽然与Java相比,从Doubles到BigDecimals 的转换情况有所改善
scala> new java.math.BigDecimal(0.2)
res0: java.math.BigDecimal = 0.20000000000000001110223024625156...
scala> BigDecimal(0.2)
res1: scala.math.BigDecimal = 0.2
Run Code Online (Sandbox Code Playgroud)
等等
val numbers: List[BigDecimal] = List(1.2, 3.2, 0.7, 0.8, 1.1)
Run Code Online (Sandbox Code Playgroud)
工作得很好,有一个隐含的转换是不合理的
implicit def String2BigDecimal(s: String) = BigDecimal(s)
Run Code Online (Sandbox Code Playgroud)
默认情况下可以将字符串转换为BigDecimals吗?
val numbers: List[BigDecimal] = List("1.2", "3.2", "0.7", "0.8", "1.1")
Run Code Online (Sandbox Code Playgroud)
还是我失去了一些东西和Scala解决Java的所有"问题"使用的BigDecimal构造与浮点值,而不是一个String,并且BigDecimal(String)基本上不斯卡拉不再需要?