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,
}
});
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