diff options
| -rw-r--r-- | src/ng/filter/filters.js | 5 | ||||
| -rw-r--r-- | test/ng/filter/filtersSpec.js | 21 | 
2 files changed, 23 insertions, 3 deletions
| diff --git a/src/ng/filter/filters.js b/src/ng/filter/filters.js index f2c87110..8afe2a0f 100644 --- a/src/ng/filter/filters.js +++ b/src/ng/filter/filters.js @@ -171,6 +171,11 @@ function formatNumber(number, pattern, groupSep, decimalSep, fractionSize) {      }      if (fractionSize && fractionSize !== "0") formatedText += decimalSep + fraction.substr(0, fractionSize); +  } else { + +    if (fractionSize > 0 && number > -1 && number < 1) { +      formatedText = number.toFixed(fractionSize); +    }    }    parts.push(isNegative ? pattern.negPre : pattern.posPre); diff --git a/test/ng/filter/filtersSpec.js b/test/ng/filter/filtersSpec.js index eb98c355..59883799 100644 --- a/test/ng/filter/filtersSpec.js +++ b/test/ng/filter/filtersSpec.js @@ -145,9 +145,24 @@ describe('filters', function() {        expect(number(1234.567, 2)).toEqual("1,234.57");      }); -    it('should filter exponential numbers', function() { -      expect(number(1e50, 0)).toEqual('1e+50'); -      expect(number(-2e50, 2)).toEqual('-2e+50'); +    it('should filter exponentially large numbers', function() { +      expect(number(1e50)).toEqual('1e+50'); +      expect(number(-2e100)).toEqual('-2e+100'); +    }); + +    it('should ignore fraction sizes for large numbers', function() { +      expect(number(1e50, 2)).toEqual('1e+50'); +      expect(number(-2e100, 5)).toEqual('-2e+100'); +    }); + +    it('should filter exponentially small numbers', function() { +      expect(number(1e-50, 0)).toEqual('0'); +      expect(number(1e-6, 6)).toEqual('0.000001'); +      expect(number(1e-7, 6)).toEqual('0.000000'); + +      expect(number(-1e-50, 0)).toEqual('-0'); +      expect(number(-1e-6, 6)).toEqual('-0.000001'); +      expect(number(-1e-7, 6)).toEqual('-0.000000');      });    }); | 
