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