Javascript 美元兑换成美分,再兑换成美元

Javascript 美元兑换成美分,再兑换成美元,javascript,angularjs,Javascript,Angularjs,我试图能够在一个美元金额(5.75)键入,并有它转换为575,并被存储在数据库中,然后显示为5.75在网站上再次 我所拥有的东西只卖5美元,但不卖5.75美元。下面是我所拥有的 HTML 指示 directive('monetaryInput', function($filter, $browser) { return { require: 'ngModel', link: function($scope, $element, $attra, ngMode

我试图能够在一个美元金额(5.75)键入,并有它转换为575,并被存储在数据库中,然后显示为5.75在网站上再次

我所拥有的东西只卖5美元,但不卖5.75美元。下面是我所拥有的

HTML

指示

directive('monetaryInput', function($filter, $browser) {
    return {
        require: 'ngModel',
        link: function($scope, $element, $attra, ngModelCtrl) {
            var listener = function() {
                $element.val($filter('MonetaryUnit')(value, false));
            };

            ngModelCtrl.$parsers.push(function(viewValue) {
                return Math.round(parseInt(viewValue) * 100);
            });

            ngModelCtrl.$render = function() {
                $element.val($filter('MonetaryUnit')(ngModelCtrl.$viewValue, false));
            }

            $element.bind('change', listener);
        }
    }
})

很简单。只需将
parseInt
更改为
parseFloat
。请参见下面的工作示例:

var-app=angular.module(“sa”,[]);
应用控制器(“FooController”,功能($scope){
});
app.filter('MonetaryUnit',function(){
返回函数(金额){
返回(金额/100)。固定(2);
}
});
app.directive('monetaryInput',函数($filter,$browser){
返回{
要求:'ngModel',
链接:函数($scope、$element、$attra、ngModelCtrl){
var listener=function(){
$element.val($filter('MonetaryUnit')(值,false));
};
ngModelCtrl.$parsers.push(函数(viewValue){
返回数学整数(parseFloat(viewValue)*100);
});
ngModelCtrl.$render=function(){
$element.val($filter('MonetaryUnit')(ngModelCtrl.$viewValue,false));
}
$element.bind('change',listener);
}
}
})


模型值:{{amount}
所以没有答案意味着它应该工作?5.75的答案是什么?您是否尝试过使用parseFloat而不是parseInt?
.filter('MonetaryUnit', function () { 
    return function (amount) {
        return (amount / 100).toFixed(2); 
    } 
})
directive('monetaryInput', function($filter, $browser) {
    return {
        require: 'ngModel',
        link: function($scope, $element, $attra, ngModelCtrl) {
            var listener = function() {
                $element.val($filter('MonetaryUnit')(value, false));
            };

            ngModelCtrl.$parsers.push(function(viewValue) {
                return Math.round(parseInt(viewValue) * 100);
            });

            ngModelCtrl.$render = function() {
                $element.val($filter('MonetaryUnit')(ngModelCtrl.$viewValue, false));
            }

            $element.bind('change', listener);
        }
    }
})