code: @Nullable
    public static BigDecimal parseBigDecimal (@Nullable final String sStr,
                                              @Nonnegative final int nScale,
                                              @Nonnull final RoundingMode eRoundingMode,
                                              @Nullable final BigDecimal aDefault)
    {
      ValueEnforcer.isGE0 (nScale, "Scale");
      ValueEnforcer.notNull (eRoundingMode, "RoundingMode");
  
      if (sStr != null && sStr.length () > 0)
        try
        {
          return new BigDecimal (_getUnifiedDecimal (sStr)).setScale (nScale, eRoundingMode);
        }
        catch (final NumberFormatException ex)
        {
          // Fall through
        }
      return aDefault;
    }
docs: Parse the given {@link String} as {@link BigDecimal}.
  
  @param sStr
  The String to parse. May be <code>null</code>.
  @param nScale
  The scaling (decimal places) to be used for the result. Must be &ge;
  0!
  @param eRoundingMode
  The rounding mode to be used to achieve the scale. May not be
  <code>null</code>.
  @param aDefault
  The default value to be returned if the passed string could not be
  converted to a valid value. May be <code>null</code>.
  @return <code>aDefault</code> if the string does not represent a valid
  value.