Giter VIP home page Giter VIP logo

numeral's Introduction

Numeral

Numeral is a standard Deno module for formatting and manipulating numbers.

๐Ÿ”ง How to use

import { numeral } from 'https://deno.land/x/[email protected]/mod.ts';

๐Ÿ’ก Usage

๐ŸŽ€ Create

Create an instance of a numeral. Numeral takes numbers or strings that it trys to convert into a number.

const myNumeral = numeral(1000);

const value = myNumeral.value();
// 1000

const myNumeral2 = numeral('1,000');

const value2 = myNumeral2.value();
// 1000
Input Value
numeral(974) 974
numeral(0.12345) 0.12345
numeral('10,000.12') 10000.12
numeral('23rd') 23
numeral('$10,000.00') 10000
numeral('100B') 100
numeral('3.467TB') 3467000000000
numeral('-76%') -0.76
numeral('2:23:57') NaN

๐ŸŽ€ Format

Numbers can be formatted to look like currency, percentages, times, or even plain old numbers with decimal places, thousands, and abbreviations.

const string = numeral(1000).format('0,0');
// '1,000'

Numbers

Number Format String
10000 '0,0.0000' 10,000.0000
10000.23 '0,0' 10,000
10000.23 '+0,0' +10,000
-10000 '0,0.0' -10,000.0
10000.1234 '0.000' 10000.123
100.1234 '00000' 00100
1000.1234 '000000,0' 001,000
10 '000.00' 010.00
10000.1234 '0[.]00000' 10000.12340
-10000 '(0,0.0000)' (10,000.0000)
-0.23 '.00' -.23
-0.23 '(.00)' (.23)
0.23 '0.00000' 0.23000
0.23 '0.0[0000]' 0.23
1230974 '0.0a' 1.2m
1460 '0 a' 1 k
-104000 '0a' -104k
1 '0o' 1st
100 '0o' 100th

Currency

Number Format String
1000.234 '$0,0.00' $1,000.23
1000.2 '0,0[.]00 $' 1,000.20 $
1001 '$ 0,0[.]00' $ 1,001
-1000.234 '($0,0)' ($1,000)
-1000.234 '$0.00' -$1000.23
1230974 '($ 0.00 a)' $ 1.23 m

Bytes

Number Format String
100 '0b' 100B
1024 '0b' 1KB
2048 '0 ib' 2 KiB
3072 '0.0 b' 3.1 KB
7884486213 '0.00b' 7.88GB
3467479682787 '0.000 ib' 3.154 TiB

Percentages

Number Format String
1 '0%' 100%
0.974878234 '0.000%' 97.488%
-0.43 '0 %' -43 %
0.43 '(0.000 %)' 43.000 %

Time

Number Format String
25 '00:00:00' 0:00:25
238 '00:00:00' 0:03:58
63846 '00:00:00' 17:44:06

Exponential

Number Format String
1123456789 '0,0e+0' 1e+9
12398734.202 '0.00e+0' 1.24e+7
0.000123987 '0.000e+0' 1.240e-4

๐ŸŽ€ Functions

Value

The value is always available.

const number = numeral(1000);

const string = number.format('0,0');
// '1,000'

const value = number.value();
// 1000

Manipulate

Not that you will use these often, but they're there when you need them.

const number = numeral(1000);

const added = number.add(10);
// 1010
Before Function After
1000 .add(100) 1100
1100 .subtract(100) 1000
1000 .multiply(100) 100000
100000 .divide(100) 1000

Set

Set the value of your numeral object.

const number = numeral();

number.set(1000);

const value = number.value();
// 1000

Difference

Find the difference between your numeral object and a value

const number = numeral(1000),
      value = 100;

const difference = number.difference(value);
// 900

Clone

Go ahead and clone any numeral object while you're at it.

const a = numeral(1000);
const b = numeral(a);
const c = a.clone();

const aVal = a.set(2000).value();
// 2000

const bVal = b.value();
// 1000

const cVal = c.add(10).value();
// 1010

๐ŸŽ€ Settings

Default Formatting

Set a default format so you can use .format() without a string. The default format to '0,0'

const number = numeral(1000);

number.format();
// '1,000'

numeral.defaultFormat('$0,0.00');

number.format();
// '$1,000.00'

Custom Zero and Null Formatting

Set a custom output when formatting numerals with a value of 0 or null

const number = numeral(0);
const nullNumber = numeral(null);

numeral.zeroFormat('N/A');
numeral.nullFormat('N/A');

const zero = number.format('0.0')
// 'N/A'

const na = nullNumber.format('0.0')
// 'N/A'

โ— Issues

If you think any of the Numeral can be improved, please do open a PR with any updates and submit any issues. Also, I will continue to improve this, so you might want to watch/star this repository to revisit.

๐Ÿ’ช Contribution

We'd love to have your helping hand on contributions to Numeral by forking and sending a pull request!

Your contributions are heartily โ™ก welcome, recognized and appreciated. (โœฟโ— โ€ฟโ— )

How to contribute:

  • Open pull request with improvements
  • Discuss ideas in issues
  • Spread the word
  • Reach out with any feedback

โš–๏ธ License

The MIT License License: MIT

numeral's People

Contributors

bunlong avatar jsbestpractices avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

denomo ding-fan

numeral's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.