6

我希望在我的网站内的特定表格中显示价格,精确到小数点后 3 位。

价格将以英镑、美元和欧元显示。

我的货币过滤器似乎自动将价格四舍五入到小数点后 2 位。

另外,如果货币是欧元,理想情况下,我想将千位分隔符自动更改为 a .,将小数分隔符自动更改为 a ,

angularjs 对此有支持吗?

风景

<div ng-controller="SpotController">
    <table class="header-table-spot-prices">
        <thead>
            <tr><th>Spot Prices</th><th>Price</th></tr>
        </thead>
        <tbody>
            <tr ng-repeat="spot in spots">
                <td>{{ spot.item }}</td>

                    <!-- This needs to be 3dp -->
                <td>{{ spot.price | currency:spot.currency }}</td>
            </tr>
        </tbody>
    </table>
</div>
4

1 回答 1

0

这在这一点上可能无关紧要,因为原始帖子是 2 年前的,但是 angular 的“货币”过滤器将符号和分数大小作为参数。

例如:

<td>{{ spot.price | currency:spot.currency : 3 }}</td>

将输出您正在寻找的内容,而无需根据货币更改分隔符。您可以创建自己的货币过滤器,首先使用角度过滤器,然后检查条件并更改分隔符。这个笨蛋说明了这一点。

.filter('myCurrency', ['$filter', function($filter){
      return function(input, symbol, fractionSize){
          input = $filter('currency')(input, symbol, fractionSize);
          if(symbol === '\u20AC'){
            var tempString = "###";
            input = input.replace(",", tempString).replace(".", ",").replace(tempString, ".");
          }
          return input;
      }
    }])

您可能已经根据您的需要解决了这个问题,但将答案放在这里以防万一其他人遇到类似问题并遇到这篇文章。

于 2016-05-10T00:05:35.517 回答