Hello Friends, In this article, we will learn how to convert the amount into words in angular using a custom Pipe.
First, we need to create a pipe namely “amount-to-word” to convert the amount into words.
ng generate pipe amount-to-word
Now put the below code in the “amount-to-word” pipe
export class AmountToWordPipe implements PipeTransform { transform(value: any, args?: any): any { if (value) { value = parseFloat(value).toFixed(2); let amounth = value.toString().split("."); let price: any = amounth[0]; let pointer: any = amounth.length > 0 ? amounth[1] : null; var singleDigit = ["Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine"], doubleDigit = ["Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"], tensPlace = ["", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"], handle_tens = function (digit: any, prevdigit: any) { return 0 == digit ? "" : " " + (1 == digit ? doubleDigit[prevdigit] : tensPlace[digit]) }, handle_utlc = function (digit: any, nextdigit: any, denom: any) { return (0 != digit && 1 != nextdigit ? " " + singleDigit[digit] : "") + (0 != nextdigit || digit > 0 ? " " + denom : "") }; var rupees = "", digitIndex = 0, digit = 0, nextDigit = 0, words = [], paisaWords = [], paisa = ""; if (price += "", isNaN(parseFloat(price))) rupees = ""; else if (parseFloat(price) > 0 && price.length <= 10) { for (digitIndex = price.length - 1; digitIndex >= 0; digitIndex--) switch (digit = price[digitIndex] - 0, nextDigit = digitIndex > 0 ? price[digitIndex - 1] - 0 : 0, price.length - digitIndex - 1) { case 0: words.push(handle_utlc(digit, nextDigit, "")); break; case 1: words.push(handle_tens(digit, price[digitIndex + 1])); break; case 2: words.push(0 != digit ? " " + singleDigit[digit] + " Hundred" + (0 != price[digitIndex + 1] && 0 != price[digitIndex + 2] ? " and" : "") : ""); break; case 3: words.push(handle_utlc(digit, nextDigit, "Thousand")); break; case 4: words.push(handle_tens(digit, price[digitIndex + 1])); break; case 5: words.push(handle_utlc(digit, nextDigit, "Lakh")); break; case 6: words.push(handle_tens(digit, price[digitIndex + 1])); break; case 7: words.push(handle_utlc(digit, nextDigit, "Crore")); break; case 8: words.push(handle_tens(digit, price[digitIndex + 1])); break; case 9: words.push(0 != digit ? " " + singleDigit[digit] + " Hundred" + (0 != price[digitIndex + 1] || 0 != price[digitIndex + 2] ? " and" : " Crore") : "") } rupees = words.reverse().join("") } else rupees = ""; if (rupees) rupees = `${rupees} Rupees` if (pointer != "00") { digitIndex = 0; digit = 0; nextDigit = 0; for (digitIndex = pointer.length - 1; digitIndex >= 0; digitIndex--) switch (digit = pointer[digitIndex] - 0, nextDigit = digitIndex > 0 ? pointer[digitIndex - 1] - 0 : 0, pointer.length - digitIndex - 1) { case 0: paisaWords.push(handle_utlc(digit, nextDigit, "")); break; case 1: paisaWords.push(handle_tens(digit, pointer[digitIndex + 1])); break; } paisa = paisaWords.reverse().join(""); if (rupees) rupees = `${rupees} and ${paisa} Paisa` else rupees = `${paisa} Paisa` } return rupees } } }
So by this pipe, we will be able to Convert Numbers into Words easily.
Now we are use pipe in our components like below
<input type="text" [(ngModel)]="amount"> <span>{{amount | amountToWord}}</span>
Now here we are converting amount into words
I hope this article helps you and you will like it. Thanks for reading.
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular
View Comments
Thanks Sir