加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

删除AngularJS货币过滤器的十进制/分

发布时间:2020-12-17 09:04:34 所属栏目:安全 来源:网络整理
导读:有没有办法从货币过滤器的输出中删除十进制/美分?我正在做这样的事情: div{{Price | currency}}/div 其中输出: $1,000.00 相反,我想: $1,000 可以使用货币过滤器吗?我知道我可以在一个数字前面加一个美元符号,我可以写我自己的过滤器,但我希望一个简
有没有办法从货币过滤器的输出中删除十进制/美分?我正在做这样的事情:
<div>{{Price | currency}}</div>

其中输出:

$1,000.00

相反,我想:

$1,000

可以使用货币过滤器吗?我知道我可以在一个数字前面加一个美元符号,我可以写我自己的过滤器,但我希望一个简单的方法存在与现有的货币过滤器。

谢谢。

更新:版本 1.3.0 – currencyFilter:将fractionSize添加为可选参数,请参阅 commit
并更新 plunker
{{10 | currency:undefined:0}}

请注意,这是第二个参数,因此您需要传入未定义以使用当前语言环境货币符号

更新:请注意,这仅适用于在号码前显示的货币符号。
从版本1.2.9它仍然硬编码到2个小数位。

Here是一个修改版本,使用angular的formatNumber副本启用0 fractionSize作为货币。

通常这应该是在区域设置定义或currencyFilter调用,但现在(1.0.4),它硬编码到2个小数位。

自定义过滤器:

myModule.filter('noFractionCurrency',[ '$filter','$locale',function(filter,locale) {
    var currencyFilter = filter('currency');
    var formats = locale.NUMBER_FORMATS;
    return function(amount,currencySymbol) {
      var value = currencyFilter(amount,currencySymbol);
      var sep = value.indexOf(formats.DECIMAL_SEP);
      if(amount >= 0) { 
        return value.substring(0,sep);
      }
      return value.substring(0,sep) + ')';
    };
  } ]);

模板:

<div>{{Price | noFractionCurrency}}</div>

例:

> Demo

更新:修正处理负值时的错误

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读