Format

How to format numbers, currencies, etc, and unformat them.

Format

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

var string = numbro(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
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
233434 '0a.00' 233.43k
233000 '0a.00' 233.00k
1 '0o' 1st
52 '0o' 52nd
23 '0o' 23rd
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
2048 '0 b' 2 KB
7884486213 '0.0b' 7.3GB
3467479682787 '0.000 b' 3.154 TB

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

If you want to format time more than that, we recommend you Momentjs which inspired numbro.

Unformat

Got a formatted string? Use the unformat function to make it useful again.

var string = numbro().unformat('($10,000.00)');
// -10000
String Function Number
'10,000.123' .unformat('10,000.123') 10000.123
'0.12345' .unformat('0.12345') 0.12345
'1.23m' .unformat('1.23m') 1230000
'23rd' .unformat('23rd') 23
'$10,000.00' .unformat('$10,000.00') 10000
'100B' .unformat('100B') 100
'3.154TB' .unformat('3.154TB') 3467859674006
'-76%' .unformat('-76%') -0.76
'2:23:57' .unformat('2:23:57') 8637

Defaults

numbro allows you to the default format to use, as well as how to format 0.

Default format

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

var number = numeral(1000);

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

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

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

Default zero

Set a custom output when formatting numerals with a value of 0.

var number = numeral(0);

numeral.zeroFormat('N/A');

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