Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

RtReports

Custom numeric format strings

  • Last UpdatedJan 24, 2023
  • 4 minute read

You can use custom numeric format string specifiers to control formatting for additional numeric types.

Note: The result string produced by these format specifiers is influenced by the Region and Language settings on your computer. Computers using different region, language, and advanced number and time settings will generate different result strings.

Custom numeric format string specifiers

Format string specifier

Name

Description

0

Zero placeholder

If the value being formatted has a digit in the position where the '0' appears in the format string, then that digit is copied to the result string. The position of the leftmost '0' before the decimal point and the rightmost '0' after the decimal point determines the range of digits that are always present in the result string. The "00" specifier causes the value to be rounded to the nearest digit preceding the decimal, where rounding away from zero is always used. For example, formatting 34.5 with "00" would result in the value 35.

#

Digit placeholder

If the value being formatted has a digit in the position where the '#' appears in the format string, then that digit is copied to the result string. Otherwise, nothing is stored in that position in the result string. Note that this specifier never displays the '0' character if it is not a significant digit, even if '0' is the only digit in the string. It displays the '0' character if it is a significant digit in the number being displayed. The "##" format string causes the value to be rounded to the nearest digit preceding the decimal, where rounding away from zero is always used. For example, formatting 34.5 with "##" would result in the value 35.

.

Decimal point

The first '.' character in the format string determines the location of the decimal separator in the formatted value; any additional '.' characters are ignored. The actual character used as the decimal separator is determined by the NumberDecimalSeparator property of the NumberFormatInfo that controls formatting.

,

Thousand separator and number scaling

The ',' character serves two purposes. First, if the format string contains a ',' character between two digit placeholders (0 or #) and to the left of the decimal point if one is present, then the output has thousand separators inserted between each group of three digits to the left of the decimal separator. The actual character used as the decimal separator in the result string is determined by the NumberGroupSeparator property of the current NumberFormatInfo that controls formatting. Second, if the format string contains one or more ',' characters immediately to the left of the decimal point, then the number is divided by the number of ',' characters multiplied by 1000 before it is formatted. For example, the format string "0,," represents 100 million as simply 100. Use of the ',' character to indicate scaling does not include thousand separators in the formatted number. Thus, to scale a number by 1 million and insert thousand separators you would use the format string "#,##0,,".

%

Percentage placeholder

The presence of a '%' character in a format string causes a number to be multiplied by 100 before it is formatted. The appropriate symbol is inserted in the number itself at the location where the '%' appears in the format string. The percent character used is dependent on the current NumberFormatInfo class.

E0

E+0 E-0

e0

e+0 e-0

Scientific notation

If any of the strings "E", "E+", "E-", "e", "e+", or "e-" are present in the format string and are followed immediately by at least one '0' character, then the number is formatted using scientific notation with an 'E' or 'e' inserted between the number and the exponent. The number of '0' characters following the scientific notation indicator determines the minimum number of digits to output for the exponent. The "E+" and "e+" formats indicate that a sign character (plus or minus) should always precede the exponent. The "E", "E-", "e", or "e-" formats indicate that a sign character should only precede negative exponents.

\

Escape character

In C# and the Managed Extensions for C++, the backslash character causes the next character in the format string to be interpreted as an escape sequence. It is used with traditional formatting sequences like '\n' (new line). In some languages, the escape character itself must be preceded by an escape character when used as a literal. Otherwise, the compiler interprets the character as an escape sequence. Use the string "\\" to display '\'. Note that this escape character is not supported in Visual Basic; however, ControlChars provides the same functionality.

'ABC' "ABC"

Literal string

Characters enclosed in single or double quotes are copied to the result string literally, and do not affect formatting.

;

Section separator

The ';' character is used to separate sections for positive, negative, and zero numbers in the format string.

Other

All other characters

All other characters are copied to the result string as literals in the position they appear.

  • For fixed-point format strings, which are strings that do not contain an "E0", "E+0", "E-0", "e0", "e+0", or "e-0", numbers are rounded to as many decimal places as there are digit placeholders to the right of the decimal point.

  • If the format string does not contain a decimal point, the number is rounded to the nearest integer.

  • If the number has more digits than there are digit placeholders to the left of the decimal point, the extra digits are copied to the result string immediately before the first digit placeholder.

    Examples for custom format specifiers

    Format string specifier

    Data type

    Value

    Report output

    #####

    Double

    123

    123

    00000

    Double

    123

    00123

    (###) ### - ####

    Double

    1234567890

    (123) 456 - 7890

    #.##

    Double

    1.2

    1.2

    0.00

    Double

    1.2

    1.20

    00.00

    Double

    1.2

    01.20

    #,#

    Double

    1234567890

    1,234,567,890

    #,,

    Double

    1234567890

    1235

    #,,,

    Double

    1234567890

    1

    #,##0,,

    Double

    1234567890

    1,235

    #0.##%

    Double

    0.086

    8.6%

    0.###E+0

    Double

    86000

    8.6E+4

    0.###E+000

    Double

    86000

    8.6E+004

    0.###E-000

    Double

    86000

    8.6E004

    [##-##-##]

    Double

    123456

    [12-34-56]

    ##;(##)

    Double

    1234

    1234

    ##;(##)

    Double

    -1234

    (1234)

Related Links
TitleResults for “How to create a CRG?”Also Available in