Number to Words
Introduction
Converts Numbers (including decimal points) into words for Indian style. It also converts the numbers into words for currency, again, for Indian style.
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,
}
});
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. Currently only en-IN & en-US are supported. Please open issue / PR if more needed. |
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. |
Inspiration for core logic
https://stackoverflow.com/a/46221860