C# – Formatting Strings

Today, a topic which is mostly neglected from many of us. Here it is

Concenate strings

+ +=

Format Strings 

String.Format("Hello {0}. You are from {1}", "Ben", "Spain");

Format Numbers

String.Format("Reference Code: {0:ddd- d, MM, YYYY}, somedate);

Tue, 15, 09, 1988

Formatting Currency

String.Format("Total: {0:C}", totalamount);

5.000 €

Here is again detail information from microsoft.com

Standard numeric format strings are used to format common numeric types. A standard numeric format string takes the form Axx, where:

  • A is a single alphabetic character called the format specifier. Any numeric format string that contains more than one alphabetic character, including white space, is interpreted as a custom numeric format string. For more information, see Custom Numeric Format Strings.
  • xx is an optional integer called the precision specifier. The precision specifier ranges from 0 to 99 and affects the number of digits in the result. Note that the precision specifier controls the number of digits in the string representation of a number. It does not round the number itself. To perform a rounding operation, use the Math.CeilingMath.Floor, or Math.Round method.When precision specifier controls the number of fractional digits in the result string, the result strings reflect numbers that are rounded away from zero (that is, using MidpointRounding.AwayFromZero).

    Note

    The precision specifier determines the number of digits in the result string. To pad a result string with leading or trailing spaces, use the composite formatting feature and define an alignment component in the format item.

Standard numeric format strings are supported by:

Tip

You can download the Formatting Utility, an application that enables you to apply format strings to either numeric or date and time values and displays the result string.

The following table describes the standard numeric format specifiers and displays sample output produced by each format specifier. See the Notes section for additional information about using standard numeric format strings, and the Example section for a comprehensive illustration of their use.

Format specifier Name Description Examples
“C” or “c” Currency Result: A currency value.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: Defined by NumberFormatInfo.CurrencyDecimalDigits.

More information: The Currency (“C”) Format Specifier.

123.456 (“C”, en-US) -> $123.46

123.456 (“C”, fr-FR) -> 123,46 €

123.456 (“C”, ja-JP) -> ¥123

-123.456 (“C3”, en-US) -> ($123.456)

-123.456 (“C3”, fr-FR) -> -123,456 €

-123.456 (“C3”, ja-JP) -> -¥123.456

“D” or “d” Decimal Result: Integer digits with optional negative sign.

Supported by: Integral types only.

Precision specifier: Minimum number of digits.

Default precision specifier: Minimum number of digits required.

More information: The Decimal(“D”) Format Specifier.

1234 (“D”) -> 1234

-1234 (“D6”) -> -001234

“E” or “e” Exponential (scientific) Result: Exponential notation.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: 6.

More information: The Exponential (“E”) Format Specifier.

1052.0329112756 (“E”, en-US) -> 1.052033E+003

1052.0329112756 (“e”, fr-FR) -> 1,052033e+003

-1052.0329112756 (“e2”, en-US) -> -1.05e+003

-1052.0329112756 (“E2”, fr_FR) -> -1,05E+003

“F” or “f” Fixed-point Result: Integral and decimal digits with optional negative sign.

Supported by: All numeric types.

Precision specifier: Number of decimal digits.

Default precision specifier: Defined by NumberFormatInfo.NumberDecimalDigits.

More information: The Fixed-Point (“F”) Format Specifier.

1234.567 (“F”, en-US) -> 1234.57

1234.567 (“F”, de-DE) -> 1234,57

1234 (“F1”, en-US) -> 1234.0

1234 (“F1”, de-DE) -> 1234,0

-1234.56 (“F4”, en-US) -> -1234.5600

-1234.56 (“F4”, de-DE) -> -1234,5600

“G” or “g” General Result: The more compact of either fixed-point or scientific notation.

Supported by: All numeric types.

Precision specifier: Number of significant digits.

Default precision specifier: Depends on numeric type.

More information: The General (“G”) Format Specifier.

-123.456 (“G”, en-US) -> -123.456

-123.456 (“G”, sv-SE) -> -123,456

123.4546 (“G4”, en-US) -> 123.5

123.4546 (“G4”, sv-SE) -> 123,5

-1.234567890e-25 (“G”, en-US) -> -1.23456789E-25

-1.234567890e-25 (“G”, sv-SE) -> -1,23456789E-25

“N” or “n” Number Result: Integral and decimal digits, group separators, and a decimal separator with optional negative sign.

Supported by: All numeric types.

Precision specifier: Desired number of decimal places.

Default precision specifier: Defined by NumberFormatInfo.NumberDecimalDigits.

More information: The Numeric (“N”) Format Specifier.

1234.567 (“N”, en-US) -> 1,234.57

1234.567 (“N”, ru-RU) -> 1 234,57

1234 (“N1”, en-US) -> 1,234.0

1234 (“N1”, ru-RU) -> 1 234,0

-1234.56 (“N3”, en-US) -> -1,234.560

-1234.56 (“N3”, ru-RU) -> -1 234,560

“P” or “p” Percent Result: Number multiplied by 100 and displayed with a percent symbol.

Supported by: All numeric types.

Precision specifier: Desired number of decimal places.

Default precision specifier: Defined byNumberFormatInfo.PercentDecimalDigits.

More information: The Percent (“P”) Format Specifier.

1 (“P”, en-US) -> 100.00 %

1 (“P”, fr-FR) -> 100,00 %

-0.39678 (“P1”, en-US) -> -39.7 %

-0.39678 (“P1”, fr-FR) -> -39,7 %

“R” or “r” Round-trip Result: A string that can round-trip to an identical number.

Supported by: SingleDouble, and BigInteger.

Note: Recommended for the BigInteger type only. For Double types, use “G17”; for Singletypes, use “G9”.
Precision specifier: Ignored.

More information: The Round-trip (“R”) Format Specifier.

123456789.12345678 (“R”) -> 123456789.12345678

-1234567890.12345678 (“R”) -> -1234567890.1234567

“X” or “x” Hexadecimal Result: A hexadecimal string.

Supported by: Integral types only.

Precision specifier: Number of digits in the result string.

More information: The HexaDecimal (“X”) Format Specifier.

255 (“X”) -> FF

-1 (“x”) -> ff

255 (“x4”) -> 00ff

-1 (“X4”) -> 00FF

Any other single character Unknown specifier Result: Throws a FormatException at run time.
Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: