ここでAngular noob!次のように、html にパーセンテージ値を表示しようとしています。
<td> {{ ((myvalue/totalvalue)*100) }}%</td>
それは機能しますが、奇妙に見える非常に長い小数を与えることがあります。小数点以下2桁に丸めるにはどうすればいいですか?これに対するより良いアプローチはありますか?
ここでAngular noob!次のように、html にパーセンテージ値を表示しようとしています。
<td> {{ ((myvalue/totalvalue)*100) }}%</td>
それは機能しますが、奇妙に見える非常に長い小数を与えることがあります。小数点以下2桁に丸めるにはどうすればいいですか?これに対するより良いアプローチはありますか?
以下のjeffjohnson9046のようなフィルターを使用できます。
フィルタは、入力が 10 進数形式であると仮定します (つまり、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>
toFixed
の方法が使えますNumber
。
((myValue/totalValue)*100).toFixed(2)
そのために、組み込みの「数値」フィルターをよく使用します。
<span>{{myPercentage | number}}</span>
小数点以下 2 桁の場合:
<span>{{myPercentage | number:2}}</span>
10 進数 0 の場合。
<span>{{myPercentage | number:0}}</span>
これには角度 パーセントパイプを使用できます。
angularを使用したhtml内の1行での最も簡単なソリューションは次のとおりです。
<td> {{ myvalue/totalvalue | percent:'2.0-2' }}</td>
myvalue = 4 & totalvalue = 10 の場合、結果は次のように表示されます。
40.00%
それぞれのhtml要素。
式が解決されるまで中括弧を表示しない 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);
}