Мне нужно показать такой формат валюты, как мы можем показать.
₹1
₹10
₹100
₹1,000
₹10,000
₹1,00,000
......
Мне нужно показать такой формат валюты, как мы можем показать.
₹1
₹10
₹100
₹1,000
₹10,000
₹1,00,000
......
В HTML
{{ currency_expression | currency : symbol : fractionSize}}
например
{{amount | currency:"₹":0}}
вы также можете отменить https://docs.angularjs.org/api/ng/filter/currency
Индийская рупия следует за другим форматом по сравнению с американской валютой; Таким образом, не используйте фильтр по умолчанию angular для форматирования индийских рупий
Пользовательский фильтр валюты 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>
Просто используйте INR в валютном фильтре
{{product.product_cost | currency:'INR':true}}
Вы можете сделать фильтр с помощью 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 }}
Чтобы напечатать символ рупии (₹), попробуйте вот так:
{{price | currency:"₹"}}
Подробнее о форматировании см. this.
Если любой из них выглядит так же в angular 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}}
Попробуйте этот
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);
Для отображения суммы с двумя цифрами после десятичной...
Попробуйте следующее:
var num=1234.567;
var ans= num.toLocaleString('en-IN',{ style: 'currency', currency: "INR",minimumFractionDigits:2,maximumFractionDigits:2 });
//output
//₹ 1,234.57
Я знаю это немного позже, но вы можете просто использовать https://osrec.github.io/currencyFormatter.js/, который обрабатывает
Тогда вам понадобится следующее:
// Outputs ₹ 25,34,234.00
OSREC.CurrencyFormatter.format(2534234, { currency: 'INR' });
Индийская валюта короткая, например, если вы хотите просмотреть валюту, такую как ₹ 2.5 Lakh, C 3 Cr, ₹ 12 Lakh и т.д., Используйте ниже Pipe. Это будет работать
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
Просто добавьте фильтр валюты, как это.
{{object.price | currency:"INR":true}}
Вы можете использовать это: {{amount:| currency:"₹"}}
или вы можете использовать шестнадцатеричный код для "₹"
Вход: {{3*100000000 | currency:"₹"}}
Выход: ₹300,000,000.00
prefix.replace(/\B(?=(?:\d{2})+(?!\d))/g, ",")
Полное объяснение того, почему это регулярное выражение помещает запятые в нужное место, упоминается здесь.
Вы можете форматировать валюту в INR, используя pipe и даже удаляя десятичное значение (например, Paise), например
{{bal.walletamt | currency:"₹ " : false : '2.0-0'}}
этот код будет работать и для ionic3
{{myobject.price | currency:'INR'}}
Если вам не нужно последнее десятичное значение, тогда вы можете использовать номер трубы с
₹{{myobject.price | number}}
Если вам не нужно последнее десятичное значение, но вы хотите использовать встроенную функцию валютного канала, то вы можете создать пользовательский канал для валюты или разделить канал и использовать с валютой
Ex: {{myobject.price | currency:'INR' | custSplit:".":"0"}}
Примечание: custSplit- Это пользовательский канал, который разбивает строку, что бы мы ни проходили (here- "."), И получает индекс, который нам нужен (индекс here- "0").
Подробнее о трубе читайте в угловых документах 2+.
@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', { maximumSignificantDigits: 3 }).format(value)
}
else {
formatted_value = new Intl.NumberFormat().format(value)
}
return currencyText + ' ' + formatted_value;
}
}
}
HTML
<div>{{ 10000000 | customCurrency:'₹':'1.0':false}}</div>
В angular, создайте настраиваемый фильтр, подобный этому
myApp.filter('ic', function()
{
return function(value)
{
return '₹ ' + value;
}
});
И тогда вы можете {{data|number|ic}}