Как правильно бросить незначащие нули, а у bigdecimal в Scala?



scala.math.BigDecimal.toString может вернуть что-то вроде "0.888200000". Что может быть лучшим, что я могу сделать, если я хочу "0,8882" вместо этого? java.math.BigDecimal имеет метод stripTrailingZeros() для этого, но BigDecimal Scala, похоже, его не хватает. Является ли использование scala.math.BigDecimal.underlying для получения базового java.math.BigDecimal лучшим способом или есть лучший способ в Scala?

590   1  

1 ответ:

Как насчет неявного def, если вы хотите получить доступ ко всем методам Java, но не хотите вводить underlying?

val b = math.BigDecimal("0.888200000")
implicit def bigDecimalToJavaBigDecimal(b: math.BigDecimal) = b.underlying

scala> b.stripTrailingZeros
res1: java.math.BigDecimal = 0.8882

Вы получаете Java BigDecimal назад, но это нормально, потому что уже есть implicit def назад к версии Scala, которую вы получаете при импорте math.BigDecimal, называемой javaBigDecimal2bigDecimal.

Comments

    Ничего не найдено.