我正在使用以下代码尝试在Angular 中对进行综合,这总体上起作用,但是小于0.5的数字会舍入为0.我想向上舍入每个数字到下一个整数。例如,应该舍入到1
{{((data.Virtual.SumCores/data.Physical.SumCores) | number:0)*1}}
答案 0 :(得分:18)
使用此
Math.ceil(4.4); //Returns 5
Math.ceil(0.002); //Returns 1
过滤器
.filter('roundup', function () {
return function (value) {
return Math.ceil(value);
};
})
HTML
{{ yourdata | roundup }}
参考
答案 1 :(得分:2)
如果先添加0.999,则应该向上舍入而不是向下。
答案 2 :(得分:2)
您可以为此创建过滤器:
.filter('roundup', function() {
return function(input) {
return Math.ceil(input);
};
});
并像这样使用它:
{{ data.Virtual.SumCores/data.Physical.SumCores | roundup }}
答案 3 :(得分:2)
由于所有答案都基于Math.ceil()函数,因此您只需添加
即可$scope.Math=window.Math;
进入你的控制器并像这样使用它:
{{ Math.ceil(data.Virtual.SumCores/data.Physical.SumCores) }}
通过这种方式,您可以访问所有数学函数。
答案 4 :(得分:1)
你应该创建一个新的过滤器来做到这一点:
angular.module('myApp', [])
.filter('ceil', function(){
return function(input) {
return Math.ceil(+input);
};
})
.controller('myCtrl', ['$scope', function($scope){
$scope.numbers = [0.2,1.5,1.3,5.5,3,10,0.5];
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="myCtrl">
<div ng-repeat="n in numbers">
{{n | ceil}}
</div>
</div>