我需要显示这样的货币格式,我们如何展示。
₹1
₹10
₹100
₹1,000
₹10,000
₹1,00,000
......
答案 0 :(得分:14)
与美国货币相比,印度卢比的格式不同;因此,请勿使用默认角度货币过滤器来设置印度卢比的格式
自定义INR货币过滤器
String[] names=new String[5];
names[0]="Hello 1";
names[1]="Hello 2";
names[2]="Hello 3";
names[3]="Hello 4";
names[4]="Hello 5";
inboxStyle.setBigContentTitle("Hello");
for (String name:names)
{
inboxStyle.addLine(name);
}
builder.setStyle(inboxStyle);
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;
}
}
});
答案 1 :(得分:12)
在HTML中
{{ currency_expression | currency : symbol : fractionSize}}
例如
{{amount | currency:"₹":0}}
答案 2 :(得分:6)
只需在货币过滤器中使用INR
{{product.product_cost | currency:'INR':true}}
答案 3 :(得分: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});
}
};
});
用法:
{{ rent | IndianCurrency }}
答案 4 :(得分:3)
答案 5 :(得分:3)
如果任何一个在角度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}}
答案 6 :(得分:1)
使用逗号分隔符管道和自定义INR货币PIPE组合
在HTML
1。首先使用逗号分隔符管道。
2。之后,使用自定义管道 INR管道
{{currency_expression |数字:'':'en-IN'| INRpipe}}
Pipe.ts
transform(value:string):字符串{
if (!value) {
return null;
}
return `₹${value}`; // this line will only solve your problem
以下是可选的
/ 如果要添加两个小数点货币 /
然后按照这种方式。
if(value.includes('。')){
return `₹${value}`;
}
返回₹${value}.00
;
}
答案 7 :(得分:1)
我相信currency pipe
将解决此问题
注意:符号中数字参数的语法为-> "numberOfInteger:minimumFractions-maxFractions"
输入: {{1499 |货币:'INR':'符号':'1.0'}}
输出: ¥ 1,499
说明-> '1.0'
表示货币管道将至少显示1位数字且不显示小数。
让我为您提供另一个示例:
输入: {{99 |货币:'INR':'符号':'3.2-2'}}
输出: ₹099.00
说明-> '3.2-2'
表示货币管道将至少显示3位数字,并显示小数点最小2个分数和最大2个分数。
答案 8 :(得分:1)
@Pipe({
name: 'customCurrency'
})
export class CustomCurrencyPipe implements PipeTransform {
transform(value: number, isSymbol: string, decPointer: string, isPrefix: boolean): string {
if (!isNaN(value)) {
var formatted_value;
var currencyText = isSymbol;
if (currencyText == '₹') {
// for Indian number system
formatted_value = new Intl.NumberFormat('en-IN').format(value)
}
else {
formatted_value = new Intl.NumberFormat().format(value)
}
return currencyText + ' ' + formatted_value;
}
}
}
HTML
<div>{{ 10000000 | customCurrency:'₹':'1.0':false}}</div>
答案 9 :(得分:1)
{{myobject.price | currency:'INR'}}
如果不需要最后一个十进制值,则可以将数字管道用于
₹{{myobject.price | number}}
如果不需要最后一个十进制值,但您想使用内置的 货币管道功能,则可以为 货币,也可以创建拆分管道并与货币一起使用
Ex: {{myobject.price | currency:'INR' | custSplit:".":"0"}}
注意:custSplit-这是一个自定义管道,它将字符串拆分为任意形式 通过(此处-“。”)并获取所需的索引(此处为“ 0”索引)。
有关管道的更多信息,请阅读angular 2+ doc
答案 10 :(得分:1)
印度货币缩写,例如,如果您想要货币视图,例如 250万克拉,₹3 Cr,₹120万克拉等,则在“管道”下方使用。 会起作用
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'pricePipe'
})
export class PricePipePipe implements PipeTransform {
transform(value: number, args: string[]): any {
if (! isNaN(value)) {
var currencySymbol = '₹';
if (value == null) {
return '';
}
var InrRSOut = value;
InrRSOut = Math.round(InrRSOut);
var RV = "";
if (InrRSOut > 0 && InrRSOut < 1000) {
RV = InrRSOut.toString();
}
else if (InrRSOut >= 1000 && InrRSOut < 10000) {
RV = InrRSOut.toString();
}
else if (InrRSOut >= 10000 && InrRSOut < 100000) {
var f1 = InrRSOut.toString().substring(0, 2);
var f2 = InrRSOut.toString().substring(2, 5);
RV = f1 + "," + f2;
}
else if (InrRSOut >= 100000 && InrRSOut < 1000000) {
var f1 = InrRSOut.toString().substring(0, 1);
var f2 = InrRSOut.toString().substring(1, 3);
if (f2 == "00") {
RV = f1 + " Lacs";
}
else {
RV = f1 + "." + f2 + " Lacs";
}
}
else if (InrRSOut >= 1000000 && InrRSOut < 10000000) {
var f1 = InrRSOut.toString().substring(0, 2);
var f2 = InrRSOut.toString().substring(2, 4);
if (f2 == "00") {
RV = f1 + " Lacs";
}
else {
RV = f1 + "." + f2 + " Lacs";
}
}
else if (InrRSOut >= 10000000 && InrRSOut < 100000000) {
var f1 = InrRSOut.toString().substring(0, 1);
var f2 = InrRSOut.toString().substring(1, 3);
if (f2 == "00") {
RV = f1 + " Cr";
}
else {
RV = f1 + "." + f2 + " Cr";
}
}
else if (InrRSOut >= 100000000 && InrRSOut < 1000000000) {
var f1 = InrRSOut.toString().substring(0, 2);
var f2 = InrRSOut.toString().substring(2, 4);
if (f2 == "00") {
RV = f1 + " Cr";
}
else {
RV = f1 + "." + f2 + " Cr";
}
}
else if (InrRSOut >= 1000000000 && InrRSOut < 10000000000) {
var f1 = InrRSOut.toString().substring(0, 3);
var f2 = InrRSOut.toString().substring(3, 5);
if (f2 == "00") {
RV = f1 + " Cr";
}
else {
RV = f1 + "." + f2 + " Cr";
}
}
else if (InrRSOut >= 10000000000) {
var f1 = InrRSOut.toString().substring(0, 4);
var f2 = InrRSOut.toString().substring(6, 8);
if (f2 == "00") {
RV = f1 + " Cr";
}
else {
RV = f1 + "." + f2 + " Cr";
}
}
else {
RV = InrRSOut.toString();
}
return currencySymbol + RV;
}
}
}
在HTML中使用
{{ 125000000 | pricePipe }}
输出
₹12.50 Cr
答案 11 :(得分:1)
我知道它有点晚了,但您可以使用处理
的https://osrec.github.io/currencyFormatter.js/然后您只需要:
// Outputs ₹ 25,34,234.00
OSREC.CurrencyFormatter.format(2534234, { currency: 'INR' });
答案 12 :(得分:1)
对于小数点后两位数的显示量...
试试这个:
var num=1234.567;
var ans= num.toLocaleString('en-IN',{ style: 'currency', currency: "INR",minimumFractionDigits:2,maximumFractionDigits:2 });
//output
//₹ 1,234.57
答案 13 :(得分: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);
答案 14 :(得分:0)
您可以使用管道格式化INR中的货币,甚至可以删除十进制值(即Paise),如
{{bal.walletamt | currency:"₹ " : false : '2.0-0'}}
此代码也适用于ionic3
答案 15 :(得分:0)
prefix.replace(/\B(?=(?:\d{2})+(?!\d))/g, ",")
有关为什么此正则表达式将逗号放在正确位置的完整说明,请参阅here。
答案 16 :(得分:0)
您可以使用此{{amount:| currency:"₹"}}
,也可以使用"₹"
输入:{{3*100000000 | currency:"₹"}}
输出:₹300,000,000.00
答案 17 :(得分:0)
只需添加货币过滤器即可。
{{object.price | currency:"INR":true}}
答案 18 :(得分:-1)
如果“amount”是包含要转换为 INR 格式的数字的变量,请使用以下 html 代码中给出的方法之一 -
1. {{ 金额 |货币:'INR':真}}
结果:150,000.00 卢比
2. {{ 金额 |货币:'INR':真}}
结果:INR150,000.00
3. {{ amount.toLocaleString('en-IN')}}
结果:1,50,000
答案 19 :(得分:-1)
在角度中,创建一个像这样的自定义过滤器
myApp.filter('ic', function()
{
return function(value)
{
return '₹ ' + value;
}
});
然后你可以{{data|number|ic}}