如何在 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>₼
</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>
我想在书价中取小数点整。但是当我使用 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>₼
</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>