AngularJS货币过滤器:如果金额中没有美分,我可以删除.00吗?

AngularJS货币过滤器:如果金额中没有美分,我可以删除.00吗?,angularjs,Angularjs,我谨此陈辞: 当我在字段中键入1234.56时,输出应为$1234.56。但是如果我输入1234,那么输出是$1234.00。我不希望小数和零出现。 如何做到这一点?添加一个新过滤器: “严格使用”; 有棱角的 .module('myApp') .filter('myCurrency',['$filter',函数($filter){ 返回函数(输入){ 输入=解析浮点(输入); input=input.toFixed(输入%1==0?0:2); 返回“$”+input.toString().re

我谨此陈辞: 当我在字段中键入1234.56时,输出应为$1234.56。但是如果我输入1234,那么输出是$1234.00。我不希望小数和零出现。 如何做到这一点?

添加一个新过滤器:

“严格使用”;
有棱角的
.module('myApp')
.filter('myCurrency',['$filter',函数($filter){
返回函数(输入){
输入=解析浮点(输入);
input=input.toFixed(输入%1==0?0:2);
返回“$”+input.toString().replace(/\B(?=(\d{3})+(?!\d))/g,”;
};
}]);
在你看来:

{{'100'|我的货币}
{{'100.05'|我的货币}
{{'1000'|我的货币}
{{'1000.05'|我的货币}

我更喜欢这个答案,因为它保持逗号分隔千:


如果您想要快速脏的东西,可以将第二个参数设置为过滤器,以便在实际显示美分时触发两位小数:

{{amount | currency:undefined:2*(amount % 1 !== 0)}}
快速警告是,由于浮点精度的损失将导致
amount%1
返回
0
,因此这只适用于大约10^14


另一种语法是
2*,它的工作原理几乎相同,但不太容易理解!!(金额%1)

您可以使用高级货币筛选器:可能重复而不是返回$symbol。。我怎样才能返回???@OamPsy,请清理并删除您的通讯,重要的是。。。这里链接的答案显示,这个功能现在包含在AngularJs中,因此您不必编写任何自定义代码。这并没有回答这个问题。问题特别要求显示美分,除非美分是“.00”。这并不像Ryan提到的那样回答问题。