currency-in-words

3.0.1 • Public • Published

currency-in-words

Convert currency or similar number formats to respective words

Installation:



npm i currency-in-words

Usage:


import { convert } from 'currency-in-words'

/*
* IOptions {
*   format?: 'intl' | 'in'
*   lang?: 'en'
* }
*
* convert(value: string, {format: 'intl', lang: 'en'}?: IOptions) => string
*/

//  indian-system
const inWords1 = convert('555.77')

//  international-system
const inWords2 = convert('777.55', { format: 'intl' })
console.log(convert('555'))  // five hundred fifty five
console.log(convert('1022')) // one thousand twenty two
console.log(convert('1,022')) // NaN
console.log(convert('66.123')) // sixty six.twelve
console.log(convert('99.11')) // ninety nine.eleven
console.log(convert('99.09')) // ninety nine; decimals lesser than .10 is rejected

console.log(convert(100000)) // one lakh
console.log(convert(100000, { format: 'int' })) // one hundred thousand

Note

  1. Expect NaN when any invalid characters are present, eg: 10E55
  2. Fractional part is corrected to two decimal places
  3. Decimals from .00 to .09 is ignored.

Compatibility


Supports upto 15 digits for both indian and international systems on their integer part. A RangeError will be thrown for length beyond 15.

eg: calling convert with 999,999,999,999,999 + 1 will throw a range error

International system:

999,999,999,999,999 (1 quadrillion - 1)

Indian system:

99,99,99,99,99,99,999 (100 crore crore - 1)

Hacks



Hard time passing it as a string? cast it from the source
const amount = 0.99
const result = convert(`${amount}`) //  zero.ninety nine

Eliminate commas
const amount = '1,000.99'
const sanitized = amount.replace(/,/, '') //  1000.99

Want decimal places not to be corrected? Control it from code.
const amount = '123.123'
const [dollars, cents] = amount.split('.')
const result = `${convert(dollars)}.${convert(cents)}` // one hundred twenty threee.one hundred twenty three

Package Sidebar

Install

npm i currency-in-words

Weekly Downloads

7

Version

3.0.1

License

ISC

Unpacked Size

77.4 kB

Total Files

29

Last publish

Collaborators

  • sarathantony