Format a number based on a format string '-£#,##0.##0'
npm install format-number-with-string. or , as decimal point
. or , as thousand separators
. or , as thousanths separators
#, 9 or 0 as number place holders
var format = require('format-number-with-string');
var overrideOptions = {noUnits: true, noSeparator: true};
var output1 = format(3345.23, '-£#,###,###.00');
var output2 = format(3345.23, '-£#,###,###.00', overrideOptions);
`
Format Notes and Examples
$3
A 0 will pad to that position
- 92332.42,'## ##0.##0 ##' returns '92 332.420'
- '.42','## ##0.##0 ##' returns '0.420'
- 33, '00000' returns '00033'
$3
A 0 or 9 in the last decimal space will cause rounding to that number of places
- '92332.42467','## ##0.##0' returns '92 332.425'
$3
WARNING - omitting a negative from the format string will return the absolute value
- '-332.42','(###.###)' returns '(332.42)'
- '-332.42','- ###.###' returns '- 332.42'
- '-332.42','###.###-' returns '332.42-'
- '-332.42','###.###' returns '332.42'
$3
If a format ends in a . or , then this will be taken as the decimal character UNLESS the same character is used elsewhere so:
- '923324234','#,###.' returns '923,324,234'
- '923324234','#.###,' returns '923.324.234'
If a format only has one of ',' or '.' and the character only appears once it is taken as the decimal point
- '2332.42','#,###' returns '2332,42'
- '2332.42','#.###' returns '2332.42'
If the character appears twice in the format string it is a separator
- '923324234','#,###,###' returns '923,324,234'
When in doubt '.' in the format string is the decimal point, so
- '234.45645','#.###,#' returns '234.456,45'
To create a similar structure with decimalChar as ',', just add a '.' at start or end or extend expression eg
- .#.###,#
- #.###,#.
- #.###.###,#
$3
Units can be before or after negative symbols.
Prefix text cannot contain number placeholder characters
'-233278', '($# ###.### # per year)' returns '($233 278 per year)'
'-233278', '$# ##0.00# #- per year' returns '$233 278- per year';
'-456.23', '-$# ##0.00# # per year' returns '-$456.23 per year';
Override Options
As used in format-number
- noUnits boolean: if true will override and leave out prefix and suffix; default= false
- noSeparator` - boolean: if true will override both integer and decimals separator and leave them out