function rounding(vValue, iMaxFractionDigits, vRoundingMode) {
		vRoundingMode = vRoundingMode || NumberFormat.RoundingMode.HALF_AWAY_FROM_ZERO;
		iMaxFractionDigits = parseInt(iMaxFractionDigits);

		// only round if it is required (number of fraction digits is bigger than the maxFractionDigits option)
		var sValue = "" + vValue;
		if (!isScientificNotation(sValue)) {
			var iIndexOfPoint = sValue.indexOf(".");
			if (iIndexOfPoint < 0) {
				return vValue;
			}
			if (sValue.substring(iIndexOfPoint + 1).length <= iMaxFractionDigits) {
				if (typeof vValue === "string") {
					vValue = NumberFormat._shiftDecimalPoint(vValue, 0, true);
				}
				return vValue;
			}
		}

		if (typeof vRoundingMode === "function") {
			// Support custom function for rounding the number
			vValue = vRoundingMode(vValue, iMaxFractionDigits);
		} else {
			// The NumberFormat.RoundingMode had all values in lower case before and later changed all values to upper case
			// to match the key according to the UI5 guideline for defining enum. Therefore it's needed to support both
			// lower and upper cases. Here checks whether the value has only lower case letters and converts it all to upper
			// case if so.
			if (vRoundingMode.match(/^[a-z_]+$/)) {
				vRoundingMode = vRoundingMode.toUpperCase();
			}

			// 1. Move the decimal point to right by maxFactionDigits; e.g. 1.005 with maxFractionDigits 2 => 100.5
			vValue = NumberFormat._shiftDecimalPoint(vValue, iMaxFractionDigits, true);
			// 2. Use the rounding function to round the first digit after decimal point; e.g. ceil(100.5) => 101
			vValue = mRoundingFunction[vRoundingMode](vValue);
			// 3. Finally move the decimal point back to the original position; e.g. by 2 digits => 1.01
			vValue = NumberFormat._shiftDecimalPoint(vValue, -iMaxFractionDigits, true);
			if (typeof vValue === "string") {
				vValue = vValue.replace(rRemoveMinusFromZero, "$1");
			}
		}
		return vValue;
	}
Rounds the given value by the given number of fraction digits based on the given rounding mode.

@param {number|string} vValue
  The number to be rounded, may be a string or a number; has to be of type number if a custom rounding function
  is used
@param {int|string} iMaxFractionDigits
  The maximum number of fraction digits
@param {sap.ui.core.format.NumberFormat.RoundingMode|function(number,int):number} vRoundingMode
  The rounding mode or a custom function for rounding which is called with the number and the number of decimal
  digits that should be reserved; <b>using a function is deprecated since 1.121.0</b>; string based numbers are
  not rounded via this custom function.
@returns {number|string}
  The rounded value; the returned type is the same as the type of the given <code>vValue</code>