docs: static private final BigDecimal roundToScale(BigDecimal bd, int scale, RoundingMode mode) throws RuntimeException
      {
          int lostScaleDigits = bd.scale() - scale;
          if (lostScaleDigits <= 0) {
              return bd;
          }
          if (!isRoundingEnabled()) {
              throw new RuntimeException(String.format("Decimal scale %d is greater than the maximum %d", bd.scale(), kDefaultScale));
          }
          int desiredPrecision = Math.max(1, bd.precision() - lostScaleDigits);
          MathContext mc = new MathContext(desiredPrecision, mode);
          BigDecimal nbd = bd.round(mc);
          if (nbd.scale() != scale) {
              nbd = nbd.setScale(scale);
          }
          assert(nbd.scale() == scale);
          return nbd;
      }