diff --git a/src/global/money/money.js b/src/global/money/money.js
index 57979768..55412d39 100644
--- a/src/global/money/money.js
+++ b/src/global/money/money.js
@@ -26,7 +26,7 @@ function MoneyMaskDirective($locale, $parse, PreFormatters) {
if (isNaN(decimals)) {
decimals = 2;
}
-
+ decimals = parseInt(decimals);
var moneyMask = maskFactory(decimals);
function formatter(value) {
@@ -73,6 +73,7 @@ function MoneyMaskDirective($locale, $parse, PreFormatters) {
if (attrs.uiMoneyMask) {
scope.$watch(attrs.uiMoneyMask, function(_decimals) {
decimals = isNaN(_decimals) ? 2 : _decimals;
+ decimals = parseInt(decimals);
moneyMask = maskFactory(decimals);
parser(ctrl.$viewValue);
diff --git a/src/global/money/money.test.js b/src/global/money/money.test.js
index 2f91f3c7..7f5ab611 100644
--- a/src/global/money/money.test.js
+++ b/src/global/money/money.test.js
@@ -67,6 +67,19 @@ describe('ui-money-mask', function() {
expect(model.$viewValue).toBe('$ 3,456.79');
}));
+ it('shold allow string as definition of decimals', angular.mock.inject(function($rootScope) {
+ var input = TestUtil.compile('', {
+ model: '3456.79',
+ decimals: "2"
+ });
+
+ var model = input.controller('ngModel');
+ expect(model.$viewValue).toBe('$ 3,456.79');
+ $rootScope.decimals = "3";
+ $rootScope.$digest();
+ expect(model.$viewValue).toBe('$ 345.679');
+ }));
+
it('should validate minimum value', function() {
var input = TestUtil.compile('', {
model: '3456.79'