A Node.js package for formatting numbers with commas as thousands separators and enabling decimal formatting. Offers a versatile `format` function allowing customization of decimal limits, decimal separators, and thousands separators for precise number fo
npm install num-berA Node.js package for formatting numbers with thousands separators and decimal formatting. Provides a versatile format function that allows customization of decimal limits, decimal separators, and thousands separators for precise number formatting.
``bash`
npm install num-ber
`javascript
const num = require('num-ber');
// Basic usage
num.format(1234567); // '1,234,567'
num.format(1234567.5, 2); // '1,234,567.50'
num.format(1234567.5, 2, '.', ','); // '1.234.567,50'
`
Formats a number with custom separators and decimal places.
#### Parameters
| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| number | number | required | The number to format |decimals
| | number | 0 | Number of decimal places to display |decimalSeparator
| | string | '.' | Character used to separate decimals (e.g., '.' or ',') |numberSeparator
| | string | ',' | Character used to separate thousands (e.g., ',' or '.') |fallback
| | any | null | Value to return if input is invalid instead of throwing an error |
#### Returns
- string: Formatted number
- Error: Throws an error if the input is not a number and no fallback is provided
javascript
num.format(1234567); // '1,234,567'
num.format(0); // '0'
num.format(0.0001, 0); // '0'
`$3
`javascript
num.format(1234567.5, 2); // '1,234,567.50'
num.format(0, 2); // '0.00'
num.format(1234567.828, 2); // '1,234,567.83'
`$3
`javascript
num.format(1234.5678, 2, '.', ','); // '1.234,57'
num.format(9876543, 0, '.', ''); // '9876543'
`$3
`javascript
// No separators
num.format(9876.54321, 3, '', ''); // '9876.543'// Custom separators
num.format(1000000, 0, '.', ' '); // '1 000 000'
`$3
`javascript
num.format(-1234567.5, 2); // '-1,234,567.50'
num.format(-9876.54, 0); // '-9,877'
`$3
`javascript
num.format(999999999999.99, 2); // '999,999,999,999.99'
`$3
`javascript
num.format(1234.5678, -2); // '1,234.57'
`$3
`javascript
num.format('not a number', 2, ',', '.', 'Fallback'); // 'Fallback'
num.format('invalid', 2, ',', '.', 0); // 0
`$3
`javascript
try {
num.format('invalid input');
} catch (error) {
console.error(error.message); // 'Invalid input: Not a number'
}
`Features
- ✅ Format numbers with custom thousands separators
- ✅ Format decimal places with custom separators
- ✅ Support for negative numbers
- ✅ Support for very large numbers
- ✅ Fallback value for invalid inputs
- ✅ Rounding to specified decimal places
- ✅ No external dependencies
Testing
Run the test suite:
`bash
npm test
``