diff --git a/src/ng/filter/filters.js b/src/ng/filter/filters.js
index 62d73c16c46a..4a470118066b 100644
--- a/src/ng/filter/filters.js
+++ b/src/ng/filter/filters.js
@@ -11,6 +11,7 @@
*
* @param {number} amount Input to filter.
* @param {string=} symbol Currency symbol or identifier to be displayed.
+ * @param {number=} fractionSize Number of decimal places to round the amount to.
* @returns {string} Formatted number.
*
*
@@ -26,12 +27,14 @@
default currency symbol ($): {{amount | currency}}
custom currency identifier (USD$): {{amount | currency:"USD$"}}
+ no fractions (0): {{amount | currency:"USD$":0}}
it('should init with 1234.56', function() {
expect(element(by.id('currency-default')).getText()).toBe('$1,234.56');
expect(element(by.binding('amount | currency:"USD$"')).getText()).toBe('USD$1,234.56');
+ expect(element(by.binding('amount | currency:"USD$":0')).getText()).toBe('USD$1,235');
});
it('should update', function() {
if (browser.params.browser == 'safari') {
@@ -43,6 +46,7 @@
element(by.model('amount')).sendKeys('-1234');
expect(element(by.id('currency-default')).getText()).toBe('($1,234.00)');
expect(element(by.binding('amount | currency:"USD$"')).getText()).toBe('(USD$1,234.00)');
+ expect(element(by.binding('amount | currency:"USD$":0')).getText()).toBe('(USD$1,234)');
});
@@ -50,9 +54,10 @@
currencyFilter.$inject = ['$locale'];
function currencyFilter($locale) {
var formats = $locale.NUMBER_FORMATS;
- return function(amount, currencySymbol){
+ return function(amount, currencySymbol, fractionSize){
if (isUndefined(currencySymbol)) currencySymbol = formats.CURRENCY_SYM;
- return formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, 2).
+ if (isUndefined(fractionSize) || isNaN(fractionSize)) fractionSize = 2;
+ return formatNumber(amount, formats.PATTERNS[1], formats.GROUP_SEP, formats.DECIMAL_SEP, fractionSize).
replace(/\u00A4/g, currencySymbol);
};
}
diff --git a/test/ng/filter/filtersSpec.js b/test/ng/filter/filtersSpec.js
index b99f65e12afa..0a8c5401fe6d 100644
--- a/test/ng/filter/filtersSpec.js
+++ b/test/ng/filter/filtersSpec.js
@@ -95,6 +95,7 @@ describe('filters', function() {
expect(currency(0)).toEqual('$0.00');
expect(currency(-999)).toEqual('($999.00)');
expect(currency(1234.5678, "USD$")).toEqual('USD$1,234.57');
+ expect(currency(1234.5678, "USD$", 0)).toEqual('USD$1,235');
});