在角度2中,如何将数字显示为两位十进制舍入货币?

时间:2016-01-22 05:27:49

标签: filter rounding angular currency

示例:

  • 1.99 - > $ 1.99
  • 1.9 - > $ 1.90
  • 1 - > $ 1.00包装
  • 1.005 - > $ 1.01
  • 1.004 - > $ 1.00包装

我正在使用{{num | currency:'USD':true}}但它没有显示尾随0。

7 个答案:

答案 0 :(得分:81)

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

说明:
number_expression |数[:digitInfo]

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

number_expression:一个角度表达式,它将为输出提供一个数字。

number:与管道运算符一起使用的管道关键字。

digitInfo:它定义数字格式。

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

<强> {minIntegerDigits} {minFractionDigits} - {maxFractionDigits}

找到说明。

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

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

maxFractionDigits:最大分数位数。默认值为3.(在我们的例子中为2)

答案 1 :(得分:19)

嗯,你得到了正确的答案,但我仍然认为我可以详细说明这个答案,所以将其作为答案发布:

首先,我们的项目中有多个可用的angular2管道,其中一些列在下面

  

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

这里作为您的问题,您有与货币管道相关的问题。所以我想解释一下其他答案。

CurrencyPipe:

管道可以接受任意数量的可选参数来微调其输出。我们通过使用冒号(:)跟随管道名称然后参数值(例如,货币:&#39; EUR&#39;)将参数添加到管道。如果我们的管道接受多个参数,我们将这些值与冒号分开(例如,切片:1:5)。

{{number |货币:&#39; your_type&#39;:真:&#39; 1.2-2&#39;}}

这里......第一个参数是货币类型,它是欧元,美元或任何东西,第二个参数对于symbolDisplay是真/假,由默认为假。然后第三个是范围限制基本上是一个范围限制。您可以设置小数点后的最小和最大长度以及小数点前的位置的固定数字(或默认为空)。

我在angular2中找到了一些关于管道的好教程,我在这里发帖..

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

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

希望它有助于澄清更多关于管道的信息! @Pardeep !!

答案 2 :(得分: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

答案 3 :(得分:8)

如果像我一样,你在打字稿/ javascript而不是HTML中尝试这样做,你也可以使用toLocaleString

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

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

答案 4 :(得分:5)

以下将转换为2位小数

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

棱角2

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

答案 5 :(得分:1)

Packet paquete = null;

    try {

        //ClientIN is the input from the client initialized earlier
        paquete = (Packet) ClientIN.readObject();

    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }

    FileUtils.writeByteArrayToFile(new File(paquete.getFilePathDestiny()+"\\"+paquete.getFileName()), paquete.getData());

以下是工作示例。

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

答案 6 :(得分:0)

如果有人得到警告并想解决它,请在下面找到我使用的修复程序。

以下是警告Angular在浏览器控制台中显示:

警告:货币管道已在Angular v5中更改。的 symbolDisplay选项(第三个参数)现在是字符串,而不是 布尔值。可接受的值为“代码”,“符号”或“符号窄”。

引起警告的格式:currency: "USD":true:"1.2-2"

修正:currency: "USD":'symbol':"1.2-2"

参考:https://angular.io/api/common/CurrencyPipe