有没有办法从货币过滤器的输出中删除小数/分?我正在做这样的事情:
<div>{{Price | currency}}</div>
哪个输出:
$ 1,000.00
相反,我想:
$ 1,000
可以使用货币过滤器来完成吗?我知道我可以在数字前加一个美元符号,并且可以编写自己的过滤器,但我希望现有的货币过滤器中存在一种简单的方法。
谢谢。
更新 :从 1.3.0 版本开始-currencyFilter:添加fractionSize作为可选参数,请参阅提交 和更新的插件
{{10 | currency:undefined:0}}
请注意,这是第二个参数,因此您需要传入undefined才能使用当前的区域设置货币符号
更新 :请注意,这仅适用于数字前面显示的货币符号。从 1.2.9 版开始,它仍然被硬编码为2个小数位。
这是修改后的版本,该版本使用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>
例:
更新 :修复了处理负值时的错误