aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ng/filter/filters.js5
-rw-r--r--test/ng/filter/filtersSpec.js21
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');
});
});