JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 8577
  • Score
    100M100P100Q127343F
  • License MIT

Converts numbers into a more human-friendly format, similar to `ls`'s `--human-readable` flag (`ls -lh`) or Stack Overflow's reputation numbers. For example, 123456 becomes '123k'.

Package Exports

  • approximate-number
  • approximate-number/lib/approximate-number.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (approximate-number) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Approximate Number

Abbreviates numbers into a more human-friendly format, similar to ls's --human-readable flag (ls -lh) or Stack Overflow's reputation numbers. For example, 123456 becomes '123k'.

Works in Node.js and in browsers.

var approx = require('approximate-number');

console.log(approx(1234));
//> 1.2k

console.log(approx(12345));
//> 12k

console.log(approx(1234, {decimal: false}));
//> 1k

console.log(approx(1234, {decimal: ','}));
//> 1,2k

console.log('My Stack Overflow reputation is %s.', approx(3671, {
  min10k: true
}));
//> My Stack Overflow reputation is 3,671.

console.log('The US national debt is %s.', approx(19939034457936, {
  prefix: '$', 
  capital: true, 
  round: true
}));
// > The US national debt is $20T.

// Truncates/floors numbers by default
approx(9999);
// > '9.9k'

// Set `round: true` to round instead of floor.
approx(9999,{round: true});
// > '10k'

Getting Started

Node.js

Install node module with: npm install --save approximate-number

var approx = require('approximate-number');
approx(123456) // 123k

Bower

Install with: bower install approximate-number

<script src="/bower_components/approximate-number/lib/approximate-number.js"></script>
<script>
alert(approximateNumber(1234567890)); // 1.2b
</script>

Browser usage without a package manager

Grab the latest approximate-number.js and copy it onto your site.

Options

  • separator {String|Boolean} Default = ','. Thousands separator - set to a string (e.g. '.') to use that string or false to not use any separator.
  • decimal {String|Boolean} Default = '.'. Decimal - set to a string (e.g. ',') to use that or set to false to avoid outputting values with a decimal.
  • round {Boolean} Default = false. Round numbers off rather than flooring/truncating. When true, 105000 would become '11m', when false it becomes '10m'.
  • min10k {Boolean} Default = false. Do not abbreviate numbers below 10000. E.g. 9999 would become '9,999' rather than '9k'. (Stack Overflow-style).
  • prefix {String} Default = ''. Optional string to prepend to the value, e.g. '$'.
  • suffix {String} Default = ''. Optional string to append to the value, e.g. '%'.
  • capital {Boolean} Default = false. Set to true to use capital letters, e.g. 3.9M instead of 3.9m
  • precision {Number} Default = undefined. Number of significant digits. Must be greater than 0. Use of this option forces rounding.

V2.1 Changes

  • Added precision

V2 Changes

  • Added optional configuration object
  • Changed default from rounding to truncation. Override with options.round=true.
  • Started abbreviating numbers between 1000 and 9999 by default. Override with options.min10k=true.
  • Added trillions support.
  • Dropped cli support.

License

Copyright (c) 2014 Nathan Friedly
Licensed under the MIT license.