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

Function formatNumber

lib/test/angular/1.5.0/angular.js:19667–19731  ·  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

19665 * @return {string} The number formatted as a string
19666 */
19667function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {
19668
19669 if (!(isString(number) || isNumber(number)) || isNaN(number)) return '';
19670
19671 var isInfinity = !isFinite(number);
19672 var isZero = false;
19673 var numStr = Math.abs(number) + '',
19674 formattedText = '',
19675 parsedNumber;
19676
19677 if (isInfinity) {
19678 formattedText = '\u221e';
19679 } else {
19680 parsedNumber = parse(numStr);
19681
19682 roundNumber(parsedNumber, fractionSize, pattern.minFrac, pattern.maxFrac);
19683
19684 var digits = parsedNumber.d;
19685 var integerLen = parsedNumber.i;
19686 var exponent = parsedNumber.e;
19687 var decimals = [];
19688 isZero = digits.reduce(function(isZero, d) { return isZero && !d; }, true);
19689
19690 // pad zeros for small numbers
19691 while (integerLen < 0) {
19692 digits.unshift(0);
19693 integerLen++;
19694 }
19695
19696 // extract decimals digits
19697 if (integerLen > 0) {
19698 decimals = digits.splice(integerLen);
19699 } else {
19700 decimals = digits;
19701 digits = [0];
19702 }
19703
19704 // format the integer digits with grouping separators
19705 var groups = [];
19706 if (digits.length > pattern.lgSize) {
19707 groups.unshift(digits.splice(-pattern.lgSize).join(''));
19708 }
19709 while (digits.length > pattern.gSize) {
19710 groups.unshift(digits.splice(-pattern.gSize).join(''));
19711 }
19712 if (digits.length) {
19713 groups.unshift(digits.join(''));
19714 }
19715 formattedText = groups.join(groupSep);
19716
19717 // append the decimal digits
19718 if (decimals.length) {
19719 formattedText += decimalSep + decimals.join('');
19720 }
19721
19722 if (exponent) {
19723 formattedText += 'e+' + exponent;
19724 }

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