currency-in-words
v4.0.0
Published
A light-weight, fast and efficient lib that converts currency or any numbers to corresponding words
Maintainers
Readme
currency-in-words
Convert currency or similar number formats to respective words
Installation:
npm i currency-in-words<$>[note] Supported Formats: Indian, International
Supported Languages: English
Beta: German, Spanish, French, Hindi, Italian, Dutch and Portuguese <$>
Usage:
import { convert, type ConvertProps } from 'currency-in-words'
/**
* const options: ConvertProps = {
* value: string,
* options?: {
* lang?: 'en' | 'de' | 'es' | 'fr' | 'hi' | 'it' | 'nl' | 'pt',
* format?: 'in' | 'intl'
* }
* }
*/
// indian-system
const inOptions: ConvertProps = {
value: '555.77'
}
const inWords1 = convert('555.77')
const inWords2 = convert(inOptions)
// international-system
const intlOptions: ConvertProps = {
value: '777.55',
options: {
lang: 'en',
format: 'intl'
}
}
const inWords3 = convert('777.55', { format: 'intl' })
const inWords4 = convert(intlOptions) // pass as options as well.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 thousandNote
- Expect
NaNwhen any invalid characters are present, eg: 10E55- Fractional part is corrected to two decimal places
- 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
const amount = 0.99
const result = convert(`${amount}`) // zero.ninety nineconst amount = '1,000.99'
const sanitized = amount.replace(/,/, '') // 1000.99const amount = '123.123'
const [dollars, cents] = amount.split('.')
const result = `${convert(dollars)}.${convert(cents)}` // one hundred twenty threee.one hundred twenty three