Iva*_*van 4 scala tostring bigdecimal
scala.math.BigDecimal.toString可以返回类似"0.888200000"的内容.如果我想要"0.8882"而我可以做的最好的事情是什么?java.math.BigDecimal有stripTrailingZeros()方法,但Scala的BigDecimal似乎缺乏它.是scala.math.BigDecimal.underlying用来获取底层java.math.BigDecimal的最佳方式还是在Scala中有更好的方法?
如果要访问所有Java方法但不想键入underlying?那么隐式def怎么样?
val b = math.BigDecimal("0.888200000")
implicit def bigDecimalToJavaBigDecimal(b: math.BigDecimal) = b.underlying
scala> b.stripTrailingZeros
res1: java.math.BigDecimal = 0.8882
Run Code Online (Sandbox Code Playgroud)
你得到一个Java BigDecimal回来了,但没关系,因为已经有一个implicit def回Scala的版本,当你导入的你math.BigDecimal,叫javaBigDecimal2bigDecimal.
| 归档时间: |
|
| 查看次数: |
2230 次 |
| 最近记录: |