code: public BigDecimal stripTrailingZeros() {
          if (intCompact == 0 || (intVal != null && intVal.signum() == 0)) {
              return BigDecimal.ZERO;
          } else if (intCompact != INFLATED) {
              return createAndStripZerosToMatchScale(intCompact, scale, Long.MIN_VALUE);
          } else {
              return createAndStripZerosToMatchScale(intVal, scale, Long.MIN_VALUE);
          }
      }
docs: Returns a {@code BigDecimal} which is numerically equal to
  this one but with any trailing zeros removed from the
  representation.  For example, stripping the trailing zeros from
  the {@code BigDecimal} value {@code 600.0}, which has
  [{@code BigInteger}, {@code scale}] components equals to
  [6000, 1], yields {@code 6E2} with [{@code BigInteger},
  {@code scale}] components equals to [6, -2].  If
  this BigDecimal is numerically equal to zero, then
  {@code BigDecimal.ZERO} is returned.
  
  @return a numerically equal {@code BigDecimal} with any
  trailing zeros removed.
  @since 1.5