2016-01-22 63 views

回答

73

使用此代码转换。这是一个工作示例http://plnkr.co/edit/xnN1HnJtTel6WA24GttR?p=preview {{num | currency:'USD':true:'1.2-2'}}

说明:
number_expression | number [:digitInfo]

最后我们得到一个十进制数作为文本。找到说明。

number_expression:一个角度表达式,它会给出一个数字。

number:与管道操作员一起使用的管道关键字。

digitInfo:它定义了数字格式。

现在我们将了解如何使用digitInfo。 digitInfo的语法如下。

{minIntegerDigits} {} minFractionDigits - {} maxFractionDigits

找到说明。

minIntegerDigits:最小整数位数。默认值为1.(在我们的案例中为1)

minFractionDigits:最小小数位数。默认值为0.(在我们的案例2中)

maxFractionDigits:最大小数位数。默认是3.(在我们的情况2)

+0

@ g.sui请标记为答案现在你有代表 – Jacques

+1

Soooooo详细,与所有Angular 2一样。有没有办法将这些选项设置为默认值? (我在文档中没有发现任何有希望的东西) –

+0

此解决方案在safari中不起作用。当我打开这个链接 - http://plnkr.co/edit/xnN1HnJtTel6WA24GttR?p=preview在safari中。它不显示预期的输出。 –

4

下面将用2个十进制数字

{{num | currency : '$' : 2}} 

角2

{{num | currency:'USD':true:'1.2-2'}} 
+0

如预期在角2 –

+0

这不工作,这是不使用'$'直接代替你必须使用预定义的语法像'货币正确的方法USD'或'EUR'或类似的东西。 –

+0

我必须补充一点,我将模板加载到未定义的模型值时丢失了一些宝贵的时间。 您需要为将要进行货币管理的号码设置初始值,否则它将无法完成所有工作。 – Felype

1
<input type="number" [(ngModel)]="myModel" (keyup)="onBlurMethod()"> 
<br> 
<br> The formatted currency is : 
<br> {{myModel | currency:'USD':true:'1.2-2' }} 

这里是工作示例。

http://plnkr.co/edit/pSK8p7u3oo4WsAB9aFBS?p=preview

+0

已经由@mubashir回答了。没有新增加 –

+0

是的,它的唯一区别是文本字段正在工作。 –

+0

无所谓我认为...问题与管道有关吗? –

18

以及你得到了正确的答案,但我仍然认为我可以详细更多这个回答张贴的答案:

首先,有可用的angular2中使用的管道数我们的项目其中一些如下所列

CurrencyPipe,DatePipe,UpperCasePipe,LowerCasePipe和PercentPipe等等。

这里作为你的问题你有货币管道的问题。所以我想解释更多的其他答案。

CurrencyPipe:

甲管可以接受任何数量的可选参数的微调其输出。我们通过用冒号(:)跟随管道名称,然后是参数值(例如,货币:'EUR')向管道添加参数。如果我们的管道接受多个参数,我们用冒号分隔这些值(例如slice:1:5)。

{{number |货币:'your_type':true:'1.2-2'}}

here ...第一个参数是EUR,USD或其他货币类型,第二个参数对于symbolDisplay是true/false,这是false byDefault 。那么第三个是范围限制基本上是一个范围限制。您可以设置小数点后的最小和最大长度以及小数点之前的位置的固定数字(或将其保留为空白)。

我已经发现了一些很好的教程在angular2的喉管,我在这里张贴..

http://voidcanvas.com/angular-2-pipes-filters/

https://angular.io/docs/ts/latest/guide/pipes.html

希望它可以帮助和澄清更多的管道! @Pardeep !!

11

您正在使用正确的管道。您只需将数字信息添加到输出。

{{num | currency:'USD':true}}应该是...

{{num | currency:'USD':true:'1.2-2'}}

参考:'USD'代表的货币类型,true表示是否显示货币符号($),以及'1.2-2'代表的数字信息。

数字信息是{minIntegerDigits}.{minFractionDigits}-{maxFractionDigits}

minIntegerDigits是整数位使用,缺省值为1
minFractionDigits的最小数目是分数后位数,缺省值为0
maxFractionDigits的最小数目是分数后位数,缺省值为3的最大数量。对于数字信息

源可以在这里找到:https://angular.io/docs/ts/latest/api/common/index/DecimalPipe-pipe.html

5

如果像我一样,你想这样做了打字稿/ JavaScript的,而不是HTML,你也可以使用toLocaleString

所以将数字转换为货币字符串:

ppCurrency(number) { 
    return number.toLocaleString('en-US', { style: 'currency', currency: 'USD' }); 
    } 
相关问题