angularjs Angular 计算HTML中的百分比

v2g6jxz6  于 2023-08-02  发布在  Angular
关注(0)|答案(6)|浏览(152)

我试图在HTML中显示一个百分比值,如下所示:

<td> {{ ((myvalue/totalvalue)*100) }}%</td>

字符串
它工作,但有时它给出了一个非常长的小数,看起来很奇怪。如何将其四舍五入到小数点后的2位数?有没有更好的办法呢?

bakd9h0s

bakd9h0s1#

您可以使用一个过滤器,如下面的jeffjohnson9046所示
过滤器假设输入将采用十进制形式(即17%为0.17)。

myApp.filter('percentage', ['$filter', function ($filter) {
  return function (input, decimals) {
    return $filter('number')(input * 100, decimals) + '%';
  };
}]);

字符串
用途:

<tr ng-repeat="i in items">
   <td>{{i.statistic | percentage:2}}</td>
</tr>

6pp0gazn

6pp0gazn2#

您可以使用NumbertoFixed方法。

((myValue/totalValue)*100).toFixed(2)

字符串

qgzx9mmu

qgzx9mmu3#

为此,我经常使用the built-in 'number' filter;

<span>{{myPercentage | number}}</span>

字符串
对于2位小数:

<span>{{myPercentage | number:2}}</span>


对于十进制0;

<span>{{myPercentage | number:0}}</span>

55ooxyrt

55ooxyrt4#

在controller.js(angular.js 1.x)或app.component.ts(angular2)中,计算一个总值的百分比(逻辑),与另一个值类似。

this.percentage = Math.floor(this.myValue / this.value * 100);

字符串
然后在html中显示百分比。

<p>{{percentage}}%</p>


简单数学示例:3/10*100 = 30%。如果myValue是3,value是10,则结果是30。使用JavaScript内置的Math.floor()函数对数字进行四舍五入并删除小数。

j8yoct9x

j8yoct9x5#

您可以使用Angular percent管道。
使用Angular在HTML中使用一行最简单的解决方案如下:

<td> {{ myvalue/totalvalue | percent:'2.0-2' }}</td>

字符串
如果myvalue = 4 & totalvalue = 10,则结果将显示为

40.00%


对应的HTML元素。

drnojrws

drnojrws6#

使用ng-bind,直到表达式解析后才显示花括号。

Html

<td ng-bind="roundedPercentage(myValue, totalValue) + '%'"></td>

字符串

控制器

$scope.roundedPercentage = function(myValue, totalValue){
   var result = ((myValue/totalValue)*100)
   return Math.round(result, 2);
}

相关问题