RoundUp - AngularJS

时间:2015-09-18 10:08:38

标签: angularjs

我正在使用以下代码尝试在Angular 中对进行综合,这总体上起作用,但是小于0.5的数字会舍入为0.我想向上舍入每个数字到下一个整数。例如,应该舍入到1

{{((data.Virtual.SumCores/data.Physical.SumCores) | number:0)*1}}

5 个答案:

答案 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 }}

参考

JS Math

答案 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>