docs: function (number, patternString, formatSymbols) {
              if (isNaN(number)) {
                  return number;
              }
              number = Number(number); // so that I can use some JS methods
  
              formatSymbols = this._normalizeSymbols(formatSymbols);
  
              var patternDescription = this._explode(patternString);
              if (!patternDescription) {
                  return this.$logError(this.INVALID_FORMAT, ["formatCurrency", this.CURRENCY_BEAN]);
              }
  
              var sign = number < 0 ? "-" : "";
              var nString = Math.abs(number).toString().split(".");
              var integer = "", decimalS = nString[1] || "", decimalF = "";
  
              // When toFixed() expands the decimal part, weird results may ensue (see PTR 06956134 & http://floating-point-gui.de/basic/)
              // The if block prevents this by manipulating only the string representation when necessary
              if (patternDescription.maxDecLen > decimalS.length) {
                  integer = nString[0];
                  decimalF = ariaUtilsString.pad(decimalS, patternDescription.maxDecLen, "0");
              } else {
                  var nFixed = Math.abs(number).toFixed(patternDescription.maxDecLen).split(".");
                  integer = nFixed[0];
                  decimalF = nFixed[1] || "";
              }
  
              // The integer part should be modified only if it shorter than the minimum length
              if (integer.length < patternDescription.minIntLen) {
                  integer = ariaUtilsString.pad(integer, patternDescription.minIntLen, "0", true);
              }
  
              // decimal part
              if (decimalF.length !== decimalS.length) {
                  // toFixed cropped or padded the number, remove any unnecessary trailing 0
                  decimalF = ariaUtilsString.crop(decimalF, patternDescription.minDecLen, "0");
              } // either empty string or already correctly padded (crop is impossible)
  
              var res = [sign + this._addGrouping(integer, patternDescription, formatSymbols)];
              if (decimalF) {
                  res.push(decimalF);
              }
  
              return res.join(formatSymbols.decimalSeparator);
          }