Number to Words
Introduction
Converts Numbers (including decimal points) into words. It also converts the numbers into words for currency.
Installation
npm install to-words --save
Usage
Importing
const { ToWords } = require('to-words');
OR
import { ToWords } from 'to-words';
Config Options
const toWords = new ToWords({
localeCode: 'en-IN',
converterOptions: {
currency: true,
ignoreDecimal: false,
ignoreZeroCurrency: false,
doNotAddOnly: false,
}
});
Options can be set at instance level, or along with individual call to convert
method.
const toWords = new ToWords();
let words = toWords.convert(123);
words = toWords.convert(123.45);
words = toWords.convert(123.045);
Note: When fractional part starts with zero, the digits after decimal points are converted into respective numbers individually
To convert to currency
const toWords = new ToWords();
let words = toWords.convert(452, { currency: true });
words = toWords.convert(452.36, { currency: true });
To discard fractional unit
const toWords = new ToWords();
let words = toWords.convert(452.36, { currency: true, ignoreDecimal: true });
To ignore major currency number when it's zero
const toWords = new ToWords();
let words = toWords.convert(0.572, { currency: true, ignoreZeroCurrency: true });
Options
Option | Type | Default | Description |
---|
localeCode | string | 'en-IN' | Locale code for selecting i18n. |
currency | boolean | false | Whether the number to be converted into words written as currency. Note: When currency:true, number will be rounded off to two decimals before converting to words |
ignoreDecimal | boolean | false | Whether to ignore fractional unit of number while converting into words. |
ignoreZeroCurrency | boolean | false | Whether to ignore zero currency value while converting into words. |
doNotAddOnly | boolean | false | Do not add only at the end of the words. This works only when currency = true |
Supported Locale
Country | Language | Locale |
---|
Bangladesh | English | en-BD |
UK | English | en-GB |
Ghana | English | en-GH |
India | English | en-IN (default) |
Myanmar | English | en-MM |
Mauritius | English | en-MU |
Nigeria | English | en-NG |
USA | English | en-US |
Iran | Persian | fa-IR |
France | French | fr-FR |
India | Gujarati | gu-IN |
India | Hindi | hi-IN |
India | Marathi | mr-IN |
Suriname | Dutch | nl-SR |
Turkey | Turkish | tr-TR |
Inspiration for core logic
https://stackoverflow.com/a/46221860