MCPcopy Index your code
hub / github.com/angular-ui/ui-grid / formatNumber

Function formatNumber

lib/test/angular/1.7.0/angular.js:21958–22022  ·  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

21956 * @return {string} The number formatted as a string
21957 */
21958function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {
21959
21960 if (!(isString(number) || isNumber(number)) || isNaN(number)) return '';
21961
21962 var isInfinity = !isFinite(number);
21963 var isZero = false;
21964 var numStr = Math.abs(number) + '',
21965 formattedText = '',
21966 parsedNumber;
21967
21968 if (isInfinity) {
21969 formattedText = '\u221e';
21970 } else {
21971 parsedNumber = parse(numStr);
21972
21973 roundNumber(parsedNumber, fractionSize, pattern.minFrac, pattern.maxFrac);
21974
21975 var digits = parsedNumber.d;
21976 var integerLen = parsedNumber.i;
21977 var exponent = parsedNumber.e;
21978 var decimals = [];
21979 isZero = digits.reduce(function(isZero, d) { return isZero && !d; }, true);
21980
21981 // pad zeros for small numbers
21982 while (integerLen < 0) {
21983 digits.unshift(0);
21984 integerLen++;
21985 }
21986
21987 // extract decimals digits
21988 if (integerLen > 0) {
21989 decimals = digits.splice(integerLen, digits.length);
21990 } else {
21991 decimals = digits;
21992 digits = [0];
21993 }
21994
21995 // format the integer digits with grouping separators
21996 var groups = [];
21997 if (digits.length >= pattern.lgSize) {
21998 groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));
21999 }
22000 while (digits.length > pattern.gSize) {
22001 groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));
22002 }
22003 if (digits.length) {
22004 groups.unshift(digits.join(''));
22005 }
22006 formattedText = groups.join(groupSep);
22007
22008 // append the decimal digits
22009 if (decimals.length) {
22010 formattedText += decimalSep + decimals.join('');
22011 }
22012
22013 if (exponent) {
22014 formattedText += 'e+' + exponent;
22015 }

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