Adam Draper, a programmer and web designer, was inspired by a similar library for date and time to create a library for conveniently formatting numbers -
moment.js . Numeral.js allows you to specify the number of decimal places, separator symbols for the fractional part and groups of digits, the format for representing currencies, interest, time, abbreviations for millions, billions, megabytes, etc. In addition, you can recover numeric values from an existing string representation. The library is distributed under the MIT license.
Numeral works in browsers and under Node.js. Library connection:
In the browser from cdnjs.com:
<script src="//cdnjs.cloudflare.com/ajax/libs/numeral.js/1.4.1/numeral.min.js"></script>
In Node.js:
npm install numeral
var numeral = require('numeral');
')
Using:
var string = numeral(1000).format('0,0');
Numbers
Number | Format | Line |
---|
10,000 | '0,0.0000' | 10,000.0000 |
10,000.23 | '0,0' | 10,000 |
-10000 | '0.0.0' | -10,000.0 |
10,000.1234 | '0.000' | 10,000.123 |
10,000.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 |
one | '0o' | 1st |
52 | '0o' | 52nd |
23 | '0o' | 23rd |
100 | '0o' | 100th |
Currency
Number | Format | Line |
---|
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 | Line |
---|
100 | '0b' | 100B |
2048 | '0 b' | 2 KB |
7884486213 | '0.0b' | 7.3GB |
3467479682787 | '0.000 b' | 3.154 TB |
Interest
Number | Format | Line |
---|
one | '0%' | 100% |
0.974878234 | '0.000%' | 97.488% |
-0.43 | '0%' | -43% |
0.43 | '(0.000%)' | 43.000% |
Time
Number | Format | Line |
---|
25 | '00: 00: 00 ' | 0:00:25 |
238 | '00: 00: 00 ' | 0:03:58 |
63846 | '00: 00: 00 ' | 17:44:06 |
Reformatting
var string = numeral().unformat('($10,000.00)');
Line | Function | Number |
---|
'10, 000.123 ' | .unformat ('10, 000.123 ') | 10,000.123 |
'0.12345' | .unformat ('0.12345') | 0.12345 |
'1.23m' | .unformat ('1.23m') | 1230,000 |
'23rd' | .unformat ('23rd') | 23 |
'$ 10,000.00' | .unformat ('$ 10,000.00') | 10,000 |
'100B' | .unformat ('100B') | 100 |
'3.154TB' | .unformat ('3.154TB') | 3467859674006 |
'-76%' | .unformat ('- 76%') | -0.76 |
'2:23:57' | .unformat ('2:23:57') | 8637 |
Arithmetic
var number = numeral(1000); var added = number.add(10);
Before | Function | After |
---|
1000 | .add (100) | 1100 |
1100 | .subtract (100) | 1000 |
1000 | .multiply (100) | 100,000 |
100,000 | .divide (100) | 1000 |
Formatting a null value
var number = numeral(0); numeral.zeroFormat('N/A'); var zero = number.format('0.0')
Working with number objects
Getting a numeric value
var number = numeral(1000); var string = number.format('0,0');
Setting value
var number = numeral(); number.set(1000); var value = number.value();
Difference
var number = numeral(1000), value = 100; var difference = number.difference(value);
Cloning
var a = numeral(1000); var b = numeral(a); var c = a.clone(); var aVal = a.set(2000).value();
Localization
The library has built-in basic localization functions. There is already a rudimentary support for the Russian language.
Links
Github Official site .