Angularjs 数字过滤器将数字过滤到两位小数,但不会以这种方式显示

Angularjs 数字过滤器将数字过滤到两位小数,但不会以这种方式显示,angularjs,angularjs-filter,Angularjs,Angularjs Filter,这就是我所看到的: 该值设置为160.90,但显示为160.899999999等 <input class="form-control" ng-model="imprint.total" value="{{imprint.total | number:2}}" readonly> 它对某些输入进行过滤以获得该总数,但本质上它只是价格乘以数量。值属性中的值将被ng model指令在渲染时设置viewvalue时覆盖。如果您有一个只读文本框,那么您也可以从中删除ng模型

这就是我所看到的:

该值设置为
160.90
,但显示为
160.899999999

<input class="form-control" ng-model="imprint.total" 
    value="{{imprint.total | number:2}}" readonly>


它对某些输入进行过滤以获得该总数,但本质上它只是价格乘以数量。

值属性中的值将被
ng model
指令在渲染时设置viewvalue时覆盖。如果您有一个只读文本框,那么您也可以从中删除ng模型

<input class="form-control" 
       value="{{imprint.total | number:2}}" readonly>

使用自定义过滤器,使用toFixed方法将限制十进制值的数量

App.filter('twoDecimal',function(input, scope){

return function(){

   return input.toFixed(2);

  }

})

var-app=angular.module('app',[]);
应用程序控制器('MainCtrl',函数($scope){
$scope.data={name:'};
});
应用指令('twoDecimal',函数(){
返回{
限制:“A”,
要求:'ngModel',
链接:功能(范围、元素、属性、模型){
ngModel.$formatters.push(函数(值){debugger
返回数学四舍五入(值*100)/100;
});
}
}
});

安古拉斯普朗克
文件。写(“”);
模型为:{data.name}

ng型号将覆盖该值。您必须使用解析器/格式化程序。如果它是只读的,您可以删除ng模型,