* @param a_MathContext MathContext with some precision and a_RoundingMode
     * RoundingMode
     * @param decimalPlaces decimalPlaces &gt; -1
     * @param a_RoundingMode
     * @return
     */
    protected static BigDecimal multiplyRoundIfNecessaryNoSpecialCaseCheck(
            BigDecimal x,
            BigDecimal y,
            MathContext a_MathContext,
            int decimalPlaces,
            RoundingMode a_RoundingMode) {
        BigDecimal result = x.multiply(y);
        int resultScale = result.scale();
        if (result.scale() > decimalPlaces) {
            // RoundingNecessary
            if (a_MathContext.getPrecision() - (result.precision() - resultScale) == decimalPlaces) {
                return result.round(a_MathContext);
            } else {
                return roundIfNecessaryNoScaleCheck(
                        result, decimalPlaces, a_RoundingMode);
            }
        }
        return result;
    }