这是我看到的:
该值设置为 160.90
,但显示为 160.8999999999
等等。
<input class="form-control" ng-model="imprint.total"
value="{{imprint.total | number:2}}" readonly>
它通过过滤某些输入来获得总数,但本质上它只是价格乘以数量。
最佳答案
value 属性中的值将被 ng-model
覆盖当它在呈现时设置 View 值时的指令。您有一个只读文本框,您也可以从中删除 ng-model。
<input class="form-control"
value="{{imprint.total | number:2}}" readonly>
与
ng-model
要格式化实时数据条目,您需要创建一个指令并使用 parsers/formatters来格式化值。angular.module('app', []).directive('format', ['numberFilter',
function(numberFilter) {
return {
restrict: 'A',
require: 'ngModel',
link: function(scope, elm, attr, ngModel) {
var decPlaces = attr.format || 2;
function formatter(value) {
if (value) {
return numberFilter(value, decPlaces);
}
}
ngModel.$formatters.push(formatter);
}
}
}
]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-init="imprint=164.899999">
<input class="form-control" value="{{imprint | number:2}}" readonly>
<input class="form-control" ng-model="imprint" format="2" readonly>
</div>
关于angularjs - 数字过滤器将数字过滤为两位小数,但不会以这种方式显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30760310/