📜 ⬆️ ⬇️

Numeral.js - a library for formatting numbers

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'); // '1,000' 


Numbers

NumberFormatLine
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

NumberFormatLine
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

NumberFormatLine
100'0b'100B
2048'0 b'2 KB
7884486213'0.0b'7.3GB
3467479682787'0.000 b'3.154 TB

Interest

NumberFormatLine
one'0%'100%
0.974878234'0.000%'97.488%
-0.43'0%'-43%
0.43'(0.000%)'43.000%

Time

NumberFormatLine
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)'); // '-10000' 

LineFunctionNumber
'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); // 1010 

BeforeFunctionAfter
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') // 'N/A' 

Working with number objects


Getting a numeric value

 var number = numeral(1000); var string = number.format('0,0'); // '1,000' var value = number.value(); // 1000 

Setting value

 var number = numeral(); number.set(1000); var value = number.value(); // 1000 

Difference

 var number = numeral(1000), value = 100; var difference = number.difference(value); // 900 

Cloning

 var a = numeral(1000); var b = numeral(a); var c = a.clone(); var aVal = a.set(2000).value(); // 2000 var bVal = b.value(); // 1000 var cVal = c.add(10).value(); // 1010 


Localization


The library has built-in basic localization functions. There is already a rudimentary support for the Russian language.
 // load a language numeral.language('fr', { delimiters: { thousands: ' ', decimal: ',' }, abbreviations: { thousand: 'k', million: 'm' }, ordinal : function (number) { return number === 1 ? 'er' : 'ème'; }, currency: { symbol: '€' } }); // switch between languages numeral.language('fr'); 

Links


Github Official site .

Source: https://habr.com/ru/post/163321/


All Articles