如何在 AngularJS 绑定中获取小数的全部部分

How to get whole part of decimal number in AngularJS bindings

我想在书价中取小数点整。但是当我使用 Price | number:0 AngularJS 舍入整个部分时。例如,如果价格是 45.89,它会在浏览器中打印价格 46。那么,如何让它只打印 45 呢?

<li class="book-price">{{Price | number:0 }}
    <sup style="font-size: 55%;">
        {{ !((Price*100)%100) ? "00" : (Price*100)%100}}
    </sup>&#8380;
</li>

您可以创建自己的自定义 angular#Filter

{{45.89 |floorFilter}} //it print 45

JS;

.filter('floorFilter', function() {

    return function(value) {

      return Math.floor(value);
    }
  })

这是工作Plunker

编辑:

如果您不想创建自定义过滤器,那么

在控制器中只需执行

$scope.Price = Math.floor(Price )

如果您提供 number 过滤器 0 fractionSize Angular 将四舍五入到最接近的整数。您可以创建自己的过滤器 .

或者你可以做一个数学技巧。如果你从你的数字中减去 0.5,Angular 将得到你想要的:

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
{{45.89 | number: 0}}<br>
{{45.03 | number: 0}}<br>
{{45.89 - 0.5 | number: 0}}<br>
{{45.03 - 0.5 | number: 0}}<br>
</div>