2016-02-24 209 views
9

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

₹1 
₹10 
₹100 
₹1,000 
₹10,000 
₹1,00,000 
...... 
+1

你有任何现有的代码? –

+0

注意:印度卢比遵循不同的格式(尤其是指定数字之间的逗号)。解决方案,您接受的是在美元格式货币值之前附加'Ô'符号。 –

+0

@代码忍者..你有任何解决方案或建议? – Prasad

回答

8

在HTML

{{ currency_expression | currency : symbol : fractionSize}} 

例如

{{amount | currency:"₹":0}} 

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

+0

这不代表按照印度货币标准的逗号。它只是从数字中删除部分。 –

+0

@NiralMunjariya它确实:),你是怎么测试:O –

+0

看看http://jsfiddle.net/tujurybf/ –

1

试试这个

var x=1000; 
x=x.toString(); 
var lastThree = x.substring(x.length-3); 
var otherNumbers = x.substring(0,x.length-3); 
if(otherNumbers != '') 
    lastThree = ',' + lastThree; 
var res = otherNumbers.replace(/\B(?=(\d{2})+(?!\d))/g, ",") + lastThree; 

alert(res); 
-1

在棱角分明,像这样创建

myApp.filter('ic', function() 
{ 
    return function(value) 
    { 
     return '₹ ' + value; 
    } 
}); 

自定义过滤器,然后你可以{{data|number|ic}}

13

印度卢比如下不同的格式比较美国货币;所以,不要使用默认的角度货币过滤器进行格式化印度卢比

自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; 
 
     } 
 
    } 
 
});
<!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>

+0

如何申请输入类型=“文本” – Sharath

+0

这应该被标记为答案,因为它实际上给出了问题。 –

4

您可以用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}); 
     } 
    }; 
}); 

用法:

{{ rent | IndianCurrency }} 
2

要打印卢比符号(),尝试这样的:

{{price | currency:"&#8377;"}} 

更多的格式,请参阅this

+0

它也关于格式化....所以下来投票 – vijay

+0

@vijay,我无法得到你?你能解释一下吗? –

+0

这个问题包括2个问题。第1个:符号第2个:格式化。更多信息请看@codeninja。sj回答它包括 – vijay

0

只需添加货币这样的过滤器。

{{object.price | currency:"INR":true}} 
0

您可以使用此:{{amount:| currency:"₹"}}或者您可以使用十六进制代码"₹"

输入:{{3*100000000 | currency:"₹"}}

输出:₹300,000,000.00

0
  1. 过去三年之前获取的数字。
  2. 更换的数字,其余与prefix.replace(/\B(?=(?:\d{2})+(?!\d))/g, ",")
  3. 结合上面的部分这一修正的前缀

完全解释为什么这正则表达式在正确的地方放置逗号被提到here

1

如果任何一个在寻找角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; 
     } 

    } 
} 

申报app.module.ts

declarations: [ 
    ....., 
    IndianCurrency 
    ], 

2.使用在你的HTML

{{amount | indianCurrency}} 
2

只需使用INR货币过滤器

{{product.product_cost | currency:'INR':true}} 
0

对于小数点后两位数字显示量...

试试这个:

var num=1234.567; 
var ans= num.toLocaleString('en-IN',{ style: 'currency', currency: "INR",minimumFractionDigits:2,maximumFractionDigits:2 }); 

//output 
//₹ 1,234.57