MCPcopy Create free account
hub / github.com/angular-ui/ui-grid / formatNumber

Function formatNumber

lib/test/angular/1.6.7/angular.js:21520–21584  ·  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

21518 * @return {string} The number formatted as a string
21519 */
21520function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {
21521
21522 if (!(isString(number) || isNumber(number)) || isNaN(number)) return '';
21523
21524 var isInfinity = !isFinite(number);
21525 var isZero = false;
21526 var numStr = Math.abs(number) + '',
21527 formattedText = '',
21528 parsedNumber;
21529
21530 if (isInfinity) {
21531 formattedText = '\u221e';
21532 } else {
21533 parsedNumber = parse(numStr);
21534
21535 roundNumber(parsedNumber, fractionSize, pattern.minFrac, pattern.maxFrac);
21536
21537 var digits = parsedNumber.d;
21538 var integerLen = parsedNumber.i;
21539 var exponent = parsedNumber.e;
21540 var decimals = [];
21541 isZero = digits.reduce(function(isZero, d) { return isZero && !d; }, true);
21542
21543 // pad zeros for small numbers
21544 while (integerLen < 0) {
21545 digits.unshift(0);
21546 integerLen++;
21547 }
21548
21549 // extract decimals digits
21550 if (integerLen > 0) {
21551 decimals = digits.splice(integerLen, digits.length);
21552 } else {
21553 decimals = digits;
21554 digits = [0];
21555 }
21556
21557 // format the integer digits with grouping separators
21558 var groups = [];
21559 if (digits.length >= pattern.lgSize) {
21560 groups.unshift(digits.splice(-pattern.lgSize, digits.length).join(''));
21561 }
21562 while (digits.length > pattern.gSize) {
21563 groups.unshift(digits.splice(-pattern.gSize, digits.length).join(''));
21564 }
21565 if (digits.length) {
21566 groups.unshift(digits.join(''));
21567 }
21568 formattedText = groups.join(groupSep);
21569
21570 // append the decimal digits
21571 if (decimals.length) {
21572 formattedText += decimalSep + decimals.join('');
21573 }
21574
21575 if (exponent) {
21576 formattedText += 'e+' + exponent;
21577 }

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