From aa43cbacec2e9c9c4c9b1d2746b1bd08c22df50d Mon Sep 17 00:00:00 2001 From: Owen Craig Date: Mon, 21 Mar 2016 14:29:18 -0500 Subject: [PATCH] fix(formatNumber): handle small numbers correctly different gSize and lgSize By using >= when comparing the number length to the lgSize we'll provide the correct value when formatting numbers with differing lgSize and gSize Closes #14289 --- src/ng/filter/filters.js | 2 +- test/ng/filter/filtersSpec.js | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/ng/filter/filters.js b/src/ng/filter/filters.js index cf2089e4dabf..a1bf8b588b6a 100644 --- a/src/ng/filter/filters.js +++ b/src/ng/filter/filters.js @@ -323,7 +323,7 @@ function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) { // format the integer digits with grouping separators var groups = []; - if (digits.length > pattern.lgSize) { + if (digits.length >= pattern.lgSize) { groups.unshift(digits.splice(-pattern.lgSize).join('')); } while (digits.length > pattern.gSize) { diff --git a/test/ng/filter/filtersSpec.js b/test/ng/filter/filtersSpec.js index 8a9237fe19f4..8059a51c9df5 100644 --- a/test/ng/filter/filtersSpec.js +++ b/test/ng/filter/filtersSpec.js @@ -35,7 +35,11 @@ describe('filters', function() { it('should format according to different patterns', function() { pattern.gSize = 2; - var num = formatNumber(1234567.89, pattern, ',', '.'); + var num = formatNumber(99, pattern, ',', '.'); + expect(num).toBe('99'); + num = formatNumber(888, pattern, ',', '.'); + expect(num).toBe('888'); + num = formatNumber(1234567.89, pattern, ',', '.'); expect(num).toBe('12,34,567.89'); num = formatNumber(1234.56, pattern, ',', '.'); expect(num).toBe('1,234.56');