code: public BigMoney withScale(int scale, RoundingMode roundingMode) {
          MoneyUtils.checkNotNull(roundingMode, "RoundingMode must not be null");
          if (scale == amount.scale()) {
              return this;
          }
          return BigMoney.of(currency, amount.setScale(scale, roundingMode));
      }
docs: Returns a copy of this monetary value with the specified scale,
  using the specified rounding mode if necessary.
  <p>
  The returned instance will have this currency and the new scaled amount.
  For example, scaling 'USD 43.271' to a scale of 1 with HALF_EVEN rounding
  will yield 'USD 43.3'.
  A negative scale may be passed in, but the result will have a minimum scale of zero.
  <p>
  This instance is immutable and unaffected by this method.
  
  @param scale  the scale to use
  @param roundingMode  the rounding mode to use, not null
  @return the new instance with the input amount set, never null
  @throws ArithmeticException if the rounding fails