This is DEAD - see format-number-with-string instead
#check-and-format-number To reformat a number using a format string '-£#,##0.##0 /m', '(33 years)', '$ -99.00'.
Checks that the number is a valid number. Based on the format string checks length and whether negative values permitted, pads with zeros/rounds and adds prefix and suffix characters
Format String Can Include:
- negative signs before or after prefix text
- brackets as negative signs
- prefix and suffix texts
.
or,
as decimal point- space or
.
or,
as thousand separators - space or
.
or,
as thousanths separators #
,9
or0
as number place holders
Format Notes and Examples
Decimal points/thousands separators in the format string:
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
'92332,4234','#,###'
returns '92332,4234''92332.4234','#.###'
returns '92332.4234'
If the character appears twice in the format string it is a separator
'92332,4234','#,###,###'
returns '923,324,234''92332,4234','#.###.###'
returns error - value must be an integer
When in doubt '.' in the format string is the decimal point, so
'92332,4234.45645','#.###,#'
returns '923324234.456, 45 To create the same structure with decimalChar as ',', just add a '.' at start or end or extend expression eg.#.###,#
#.###,#.
#.###.###,#
Padding
A 0
will pad to that position
'92332.42','## ##0.##0 ##'
returns '92 332.420''.42','## ##0.##0 ##'
returns '0.420'
Maximums
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' A0
or9
in the first integer position will limit the size'92332.42467','9 ##0.##0'
returns 'error - number too large''
Negatives
'-2332.42343','(# ###.### #)'
returns '(2 332.423 43)''-2332.42343','- # ###.### #)'
returns '- 2 332.423 43''-2332.42343','# ###.### #-'
returns '(2 332.423 43-)''-2332.42343','# ###.### #'
returns 'error - must be positive'
Units/Prefix Text
Units can be before or after negative symbols.
Prefix text cannot contain number placeholder characters
'-23342456,2343278', '$(# ###.### #) per year'
returns '$(23 342 456.234 327 8) per year'
'-23342456,2343278', '($# ###.### # per year)'
returns '($23 342 456.234 327 8 per year)'
'-9,342,456.2353278', '$9 ### ##0.00# ###- per year'
returns '$9 342 456.235 327 8- per year';
'-9,342,456.2353278', '-$9 ### ##0.00# ### per year'
returns '-$9 342 456.235 327 8 per year';
Does not work for:
- structured reference numbers, eg 9999-9999
- ignores and removes leading and trailing spaces (but retains those between pre/post fix and negative symbols etc)