INR货币格式

Arc*_*rma 11 javascript angularjs

我需要显示这些货币格式,我们如何显示.

?1
?10
?100
?1,000
?10,000
?1,00,000
......
Run Code Online (Sandbox Code Playgroud)

cod*_*.sj 15

与美国货币相比,印度卢比采用不同的格式; 因此,请勿使用默认角度货币过滤器来设置印度卢比的格式

自定义INR货币过滤器

var app = angular.module('app', []);

app.controller('indexCtrl', function ($scope) {
    $scope.amount = 10000000.33;
});

app.filter('INR', function () {        
    return function (input) {
        if (! isNaN(input)) {
            var currencySymbol = '?';
            //var output = Number(input).toLocaleString('en-IN');   <-- This method is not working fine in all browsers!           
            var result = input.toString().split('.');

            var lastThree = result[0].substring(result[0].length - 3);
            var otherNumbers = result[0].substring(0, result[0].length - 3);
            if (otherNumbers != '')
                lastThree = ',' + lastThree;
            var output = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree;
            
            if (result.length > 1) {
                output += "." + result[1];
            }            

            return currencySymbol + output;
        }
    }
});
Run Code Online (Sandbox Code Playgroud)
<!DOCTYPE html>
<html ng-app="app">
<head>    
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
</head>
<body ng-controller="indexCtrl">
    Input: <input type="text" ng-model="amount">
    <h3>{{amount | INR}}</h3>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)


小智 14

在HTML中

{{ currency_expression | currency : symbol : fractionSize}}
Run Code Online (Sandbox Code Playgroud)

例如

{{amount | currency:"?":0}}
Run Code Online (Sandbox Code Playgroud)

你也可以使用 https://docs.angularjs.org/api/ng/filter/currency

  • 这并不代表印度货币标准的逗号。它只是从数字中删除分数。 (2认同)

Suh*_*han 8

只需在货币过滤器中使用INR

{{product.product_cost | currency:'INR':true}}
Run Code Online (Sandbox Code Playgroud)


Him*_*hra 5

您可以使用以下方式制作过滤器toLocaleString:

Number(data).toLocaleString('en-IN', { style: 'currency', currency: 'INR', maximumFractionDigits: 0})

过滤示例:

.filter('IndianCurrency', function() {
    return function(data) {
        if (null != data) {
            return Number(data).toLocaleString('en-IN', { style: 'currency', currency: 'INR', maximumFractionDigits: 0});
        } else {
            return Number(0).toLocaleString('en-IN', { style: 'currency',currency: 'INR', maximumFractionDigits: 0});
        }
    };
});
Run Code Online (Sandbox Code Playgroud)

用法:

{{ rent | IndianCurrency }}
Run Code Online (Sandbox Code Playgroud)


ULL*_*S K 5

如果任何人在角度 2 中看起来相同,那么这里是解决方案,1.创建自定义管道 2.在您的 html 管道代码中使用

1.创建自定义管道。

创建文件 indianCurrency.pipe.ts

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({name: 'indianCurrency'})
export class IndianCurrency implements PipeTransform {
  transform(value: number, args: string[]): any {

        if (! isNaN(value)) {
            var currencySymbol = '?';
            //var output = Number(input).toLocaleString('en-IN');   <-- This method is not working fine in all browsers!           
            var result = value.toString().split('.');

            var lastThree = result[0].substring(result[0].length - 3);
            var otherNumbers = result[0].substring(0, result[0].length - 3);
            if (otherNumbers != '')
                lastThree = ',' + lastThree;
            var output = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree;

            if (result.length > 1) {
                output += "." + result[1];
            }            

            return currencySymbol + output;
        }

  }
}
Run Code Online (Sandbox Code Playgroud)

在 app.module.ts 中声明

 declarations: [
  .....,
    IndianCurrency
  ],
Run Code Online (Sandbox Code Playgroud)

2.在你的html中使用

{{amount | indianCurrency}}
Run Code Online (Sandbox Code Playgroud)


Ind*_*eet 5

印度货币短,如果您想要像\xe2\x82\xb9 250万,\xe2\x82\xb9 3 Cr,\xe2\x82\xb9120万等货币视图,然后使用下面的管道。\n它会起作用

\n\n
import { Pipe, PipeTransform } from \'@angular/core\';\n\n@Pipe({\n  name: \'pricePipe\'\n})\nexport class PricePipePipe implements PipeTransform {\n\n  transform(value: number, args: string[]): any {\n\n    if (! isNaN(value)) {\n        var currencySymbol = \'\xe2\x82\xb9\';\n        if (value == null) {\n          return \'\';\n      }\n      var InrRSOut = value;\n      InrRSOut = Math.round(InrRSOut);\n      var RV = "";\n      if (InrRSOut > 0 && InrRSOut < 1000) {\n          RV = InrRSOut.toString();\n      }\n      else if (InrRSOut >= 1000 && InrRSOut < 10000) {\n          RV = InrRSOut.toString();\n      }\n      else if (InrRSOut >= 10000 && InrRSOut < 100000) {\n          var f1 = InrRSOut.toString().substring(0, 2);\n          var f2 = InrRSOut.toString().substring(2, 5);\n          RV = f1 + "," + f2;\n\n      }\n      else if (InrRSOut >= 100000 && InrRSOut < 1000000) {\n          var f1 = InrRSOut.toString().substring(0, 1);\n          var f2 = InrRSOut.toString().substring(1, 3);\n          if (f2 == "00") {\n              RV = f1 + " Lacs";\n          }\n          else {\n              RV = f1 + "." + f2 + " Lacs";\n          }\n      }\n      else if (InrRSOut >= 1000000 && InrRSOut < 10000000) {\n          var f1 = InrRSOut.toString().substring(0, 2);\n          var f2 = InrRSOut.toString().substring(2, 4);\n          if (f2 == "00") {\n              RV = f1 + " Lacs";\n          }\n          else {\n              RV = f1 + "." + f2 + " Lacs";\n          }\n      }\n      else if (InrRSOut >= 10000000 && InrRSOut < 100000000) {\n          var f1 = InrRSOut.toString().substring(0, 1);\n          var f2 = InrRSOut.toString().substring(1, 3);\n          if (f2 == "00") {\n              RV = f1 + " Cr";\n          }\n          else {\n              RV = f1 + "." + f2 + " Cr";\n          }\n      }\n      else if (InrRSOut >= 100000000 && InrRSOut < 1000000000) {\n          var f1 = InrRSOut.toString().substring(0, 2);\n          var f2 = InrRSOut.toString().substring(2, 4);\n          if (f2 == "00") {\n              RV = f1 + " Cr";\n          }\n          else {\n              RV = f1 + "." + f2 + " Cr";\n          }\n      }\n      else if (InrRSOut >= 1000000000 && InrRSOut < 10000000000) {\n          var f1 = InrRSOut.toString().substring(0, 3);\n          var f2 = InrRSOut.toString().substring(3, 5);\n          if (f2 == "00") {\n              RV = f1 + " Cr";\n          }\n          else {\n              RV = f1 + "." + f2 + " Cr";\n          }\n      }\n      else if (InrRSOut >= 10000000000) {\n          var f1 = InrRSOut.toString().substring(0, 4);\n          var f2 = InrRSOut.toString().substring(6, 8);\n          if (f2 == "00") {\n              RV = f1 + " Cr";\n          }\n          else {\n              RV = f1 + "." + f2 + " Cr";\n          }\n      }\n      else {\n          RV = InrRSOut.toString();\n      }\n      return currencySymbol + RV;\n    }\n\n}\n\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 HTML 中使用类似

\n\n
{{ 125000000 | pricePipe }}\n
Run Code Online (Sandbox Code Playgroud)\n\n

输出

\n\n
\xe2\x82\xb912.50 Cr\n
Run Code Online (Sandbox Code Playgroud)\n