Skip to content

Instantly share code, notes, and snippets.

@rajibdpi
Last active January 16, 2022 11:33
Show Gist options
  • Save rajibdpi/84ec4f5e678908510f87614bb12310c0 to your computer and use it in GitHub Desktop.
Save rajibdpi/84ec4f5e678908510f87614bb12310c0 to your computer and use it in GitHub Desktop.
Convert numbers to Words - for Bangladesh
/**
* Function: convert_number
*
* Description:
* Converts a given integer (in range [0..1T-1], inclusive) into
* alphabetical format ("one", "two", etc.)
*
* @int
*
* @return string
*
*/
function convert_number(number) {
if ((number < 0) || (number > 999999999)) {
throw new Error("Number is out of range");
}
let Kt = Math.floor(number / 10000000); // Koti */
number -= Kt * 10000000;
let Gn = Math.floor(number / 100000); //* lakh */
number -= Gn * 100000;
let kn = Math.floor(number / 1000); //* Thousands (kilo) */
number -= kn * 1000;
let Hn = Math.floor(number / 100); //* Hundreds (hecto) */
number -= Hn * 100;
let Dn = Math.floor(number / 10); //* Tens (deca) */
let n = number % 10; /* Ones */
let res = "";
if (Kt) {
res += convert_number(Kt) + " Koti ";
}
if (Gn) {
res += convert_number(Gn) + " Lakh ";
}
if (kn) {
res += (res.length === 0 ? "" : " ") +
convert_number(kn) + " Thousand";
}
if (Hn) {
// arr.length === 0
res += (res.length === 0 ? "" : " ") +
convert_number(Hn) + " Hundred";
}
let ones = ["", "One", "Two", "Three", "Four", "Five", "Six",
"Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen",
"Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eightteen",
"Nineteen"];
let tens = ["", "", "Twenty", "Thirty", "Fourty", "Fifty", "Sixty",
"Seventy", "Eigthy", "Ninety"];
if (Dn || n) {
if (res !== "") {
res += " and ";
}
if (Dn < 2) {
res += ones[Dn * 10 + n];
}
else {
res += tens[Dn];
if (n) {
res += "-" + ones[n];
}
}
}
if (res == null) {
res = "zero";
}
return res;
}
@rajibdpi
Copy link
Author

rajibdpi commented Jan 15, 2022

This is modified into JavaScript from this PHP Version
Inspiration by @techjewel

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment