有没有办法从货币过滤器的输出中删除十进制/美分?我正在做这样的事情:
<div>{{Price | currency}}</div>
其中输出:
$1,000.00
相反,我想:
$1,000
可以使用货币过滤器吗?我知道我可以在一个数字前面加一个美元符号,我可以写我自己的过滤器,但我希望一个简单的方法存在与现有的货币过滤器。
谢谢。
更新:版本
1.3.0 – currencyFilter:将fractionSize添加为可选参数,请参阅
commit
并更新 @L_404_2@
原文链接:https://www.f2er.com/angularjs/146666.html并更新 @L_404_2@
{{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
更新:修正处理负值时的错误