1
scala.math.BigDecimal.toString
은 "0.888200000"과 같은 것을 반환 할 수 있습니다. 대신 "0.8882"를 원한다면 무엇을 할 수 있습니까? java.math.BigDecimal
에는 stripTrailingZeros()
메서드가 있지만 스칼라의 BigDecimal에는이 메서드가 없습니다. scala.math.BigDecimal.underlying
을 사용하여 java.math.BigDecimal
최상의 방법을 얻거나 Scala에서 더 좋은 방법이 있습니까?Scala에서 BigDecimal의 후행 0을 제거하는 올바른 방법은 무엇입니까?
내가 물어 보는 것은 "입력하고 싶지 않습니다"가 아니라 성능 및 유형/참조 안전에 관한 것입니다. 이러한 접근 방식으로 이어질 수있는 모든 명백한 문제에 대한 골자입니다. 아무도 더 나은 것을 제안하지 않고 모든 사람들이이 대답을 상향 투표하고 있기 때문에 대답은 "그렇습니다, .underlying은 괜찮습니다. 그리고 후행 0을 버리는 더 좋은 방법은 없습니다"라고 동의 할 것이고 아마도 절대적인. – Ivan
실제로 코드의 여러 위치에서 0을 제거하지 않으므로 (암시 적으로)이 암시 적 메서드를 만드는 번거 로움이 아니라'b.underlying.stripTrailingZeros'를 사용합니다. 소스를 보면 객체의 필드를 반환하기 때문에 '기본'을 사용하면 성능이 저하되지 않습니다. –
실제로'.stripTrailingZeros'를'rs.getBigDecimal (1)'에 추가하여 입구에서 바로 0을 제거합니다 :-) – Ivan