MCPcopy
hub / github.com/angular-ui/ui-grid / formatNumber

Function formatNumber

lib/test/angular/1.8.0/angular.js:22744–22808  ·  view source on GitHub ↗

* Format a number into a string * @param {number} number The number to format * @param {{ * minFrac, // the minimum number of digits required in the fraction part of the number * maxFrac, // the maximum number of digits required in the fraction part of the number *

(number, pattern, groupSep, decimalSep, fractionSize)

Source from the content-addressed store, hash-verified

22742 * @return {string} The number formatted as a string
22743 */
22744function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {
22745
22746 if (!(isString(number) || isNumber(number)) || isNaN(number)) return '';
22747
22748 var isInfinity = !isFinite(number);
22749 var isZero = false;
22750 var numStr = Math.abs(number) + '',
22751 formattedText = '',
22752 parsedNumber;
22753
22754 if (isInfinity) {
22755 formattedText = '\u221e';
22756 } else {
22757 parsedNumber = parse(numStr);
22758
22759 roundNumber(parsedNumber, fractionSize, pattern.minFrac, pattern.maxFrac);
22760
22761 var digits = parsedNumber.d;
22762 var integerLen = parsedNumber.i;
22763 var exponent = parsedNumber.e;
22764 var decimals = [];
22765 isZero = digits.reduce(function(isZero, d) { return isZero && !d; }, true);
22766
22767 // pad zeros for small numbers
22768 while (integerLen < 0) {
22769 digits.unshift(0);
22770 integerLen++;
22771 }
22772
22773 // extract decimals digits
22774 if (integerLen > 0) {
22775 decimals = digits.splice(integerLen, digits.length);
22776 } else {
22777 decimals = digits;
22778 digits = [0];
22779 }
22780
22781 // format the integer digits with grouping separators
22782 var groups = [];
22783 if (digits.length >= pattern.lgSize) {
22784 groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));
22785 }
22786 while (digits.length > pattern.gSize) {
22787 groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));
22788 }
22789 if (digits.length) {
22790 groups.unshift(digits.join(''));
22791 }
22792 formattedText = groups.join(groupSep);
22793
22794 // append the decimal digits
22795 if (decimals.length) {
22796 formattedText += decimalSep + decimals.join('');
22797 }
22798
22799 if (exponent) {
22800 formattedText += 'e+' + exponent;
22801 }

Callers 2

currencyFilterFunction · 0.70
numberFilterFunction · 0.70

Calls 4

isStringFunction · 0.70
isNumberFunction · 0.70
parseFunction · 0.70
roundNumberFunction · 0.70

Tested by

no test coverage detected