Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mastermunj/to-words
Converts Numbers (including decimal points) into words. It also converts the numbers into words for currency.
https://github.com/mastermunj/to-words
conversion convert-numbers currency decimal-points i18n number-to-words typescript
Last synced: 3 days ago
JSON representation
Converts Numbers (including decimal points) into words. It also converts the numbers into words for currency.
- Host: GitHub
- URL: https://github.com/mastermunj/to-words
- Owner: mastermunj
- License: mit
- Created: 2017-09-20T12:15:09.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2024-04-10T03:32:30.000Z (7 months ago)
- Last Synced: 2024-04-10T06:39:56.141Z (7 months ago)
- Topics: conversion, convert-numbers, currency, decimal-points, i18n, number-to-words, typescript
- Language: TypeScript
- Homepage:
- Size: 8.62 MB
- Stars: 77
- Watchers: 5
- Forks: 67
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Number to Words
## Introduction
Converts Numbers (including decimal points) into words. It also converts the numbers into words for currency.
## Installation
```js
npm install to-words --save
```## Usage
Importing
```js
const { ToWords } = require('to-words');
```OR
```js
import { ToWords } from 'to-words';
```Config Options
```js
const toWords = new ToWords({
localeCode: 'en-IN',
converterOptions: {
currency: true,
ignoreDecimal: false,
ignoreZeroCurrency: false,
doNotAddOnly: false,
currencyOptions: {
// can be used to override defaults for the selected locale
name: 'Rupee',
plural: 'Rupees',
symbol: '₹',
fractionalUnit: {
name: 'Paisa',
plural: 'Paise',
symbol: '',
},
},
},
});
```Options can be set at instance level, or along with individual call to `convert` method.
```js
const toWords = new ToWords();let words = toWords.convert(123);
// words = One Hundred Twenty Threewords = toWords.convert(123.45);
// words = One Hundred Twenty Three Point Fourty Fivewords = toWords.convert(123.045);
// words = One Hundred Twenty Three Point Zero Four Five
```_Note: When fractional part starts with zero, the digits after decimal points are converted into respective numbers individually_
To convert to currency
```js
const toWords = new ToWords();let words = toWords.convert(452, { currency: true });
// words = Four Hundred Fifty Two Rupees Onlywords = toWords.convert(452.36, { currency: true });
// words = Four Hundred Fifty Two Rupees And Thirty Six Paise Only
```To discard fractional unit
```js
const toWords = new ToWords();let words = toWords.convert(452.36, { currency: true, ignoreDecimal: true });
// words = Four Hundred Fifty Two Rupees Only
```To ignore major currency number when it's zero
```js
const toWords = new ToWords();let words = toWords.convert(0.572, { currency: true, ignoreZeroCurrency: true });
// words = Five Hundred Seventy Two Paise Only
```## 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 |
| currencyOptions | object | undefined | By default currency options are taken from the specified locale.
This option allows to specify different currency options while keeping the language details from the selected locale (e.g. convert to English text but use EUR as a currency). You can define different currencies for each call to `convert()` so it works also if you need to dynamically support multiple currencies.
_This works only when `currency = true`_ |## Supported Locale
| Country | Language | Locale |
| ------------------- | ---------- | --------------- |
| UAE | English | en-AE |
| Bangladesh | English | en-BD |
| UK | English | en-GB |
| Ghana | English | en-GH |
| Ireland | English | en-IE |
| India | English | en-IN (default) |
| Myanmar | English | en-MM |
| Mauritius | English | en-MU |
| Nigeria | English | en-NG |
| Nepal | English | en-NP |
| USA | English | en-US |
| Philippines | English | en-PH |
| Estonia | Estonian | ee-EE |
| Iran | Persian | fa-IR |
| Belgium | French | fr-BE |
| France | French | fr-FR |
| India | Gujarati | gu-IN |
| India | Hindi | hi-IN |
| India | Marathi | mr-IN |
| Suriname | Dutch | nl-SR |
| Brazil | Portuguese | pt-BR |
| Turkey | Turkish | tr-TR |
| Korean, Republic of | Hangul | ko-KR |## Inspiration for core logic
[https://stackoverflow.com/a/46221860](https://stackoverflow.com/a/46221860)