Complex.ToString Method (String, IFormatProvider)


Converts the value of the current complex number to its equivalent string representation in Cartesian form by using the specified format and culture-specific format information for its real and imaginary parts.

Namespace:   System.Numerics
Assembly:  System.Numerics (in System.Numerics.dll)

public string ToString(
	string format,
	IFormatProvider provider


Type: System.String

A standard or custom numeric format string.

Type: System.IFormatProvider

An object that supplies culture-specific formatting information.

Return Value

Type: System.String

The string representation of the current instance in Cartesian form, as specified by format and provider.

Exception Condition

format is not a valid format string.

The string representation of the complex number returned by this method displays the number using its Cartesian coordinates in the form (a, b), where a is the real part of the complex number, and b is its imaginary part. Both a and b are formatted using the format string specified by format. The format parameter can be any valid standard numeric format specifier, or any combination of custom numeric format specifiers. If format is equal to String.Empty or is null, the real and imaginary parts of the complex number are formatted with the general format specifier ("G"). If format is any other value, the method throws a FormatException.

The .NET Framework provides extensive formatting support, which is described in greater detail in the following topics:

The provider parameter is an IFormatProvider implementation. Its GetFormat method returns a NumberFormatInfo object that provides culture-specific information about the format of the real and imaginary numbers in the returned string. Depending on the format parameter, this object controls symbols such as the negative sign, the group separator, and the decimal point symbol in the output string. If provider is null, the returned string is formatted using the NumberFormatInfo object of the current culture.

The provider parameter can be one of the following:

The following example creates an array of complex numbers, and displays each using several standard format strings as well as CultureInfo objects that represent the English - United States ("en-US") and French - France ("fr-FR") cultures.

using System;
using System.Globalization;
using System.Numerics;

public class Example
   public static void Main()
      Complex[] c = { new Complex(17.3, 14.1), 
                      new Complex(-18.9, 147.2), 
                      new Complex(13.472, -18.115), 
                      new Complex(-11.154, -17.002) };
      CultureInfo[] cultures = { new CultureInfo("en-US"), 
                                 new CultureInfo("fr-FR") }; 
      string[] formats = { "F2", "N2", "G5" }; 

      foreach (Complex c1 in c)
         foreach (string format in formats)
            Console.Write("{0} format string:   ", format);
            foreach (CultureInfo culture in cultures)
               Console.Write("{0} ({1})    ", c1.ToString(format, culture), culture.Name);

// The example displays the following output:
//    F2 format string:   (17.30, 14.10) (en-US)    (17,30, 14,10) (fr-FR)
//    N2 format string:   (17.30, 14.10) (en-US)    (17,30, 14,10) (fr-FR)
//    G5 format string:   (17.3, 14.1) (en-US)    (17,3, 14,1) (fr-FR)
//    F2 format string:   (-18.90, 147.20) (en-US)    (-18,90, 147,20) (fr-FR)
//    N2 format string:   (-18.90, 147.20) (en-US)    (-18,90, 147,20) (fr-FR)
//    G5 format string:   (-18.9, 147.2) (en-US)    (-18,9, 147,2) (fr-FR)
//    F2 format string:   (13.47, -18.12) (en-US)    (13,47, -18,12) (fr-FR)
//    N2 format string:   (13.47, -18.12) (en-US)    (13,47, -18,12) (fr-FR)
//    G5 format string:   (13.472, -18.115) (en-US)    (13,472, -18,115) (fr-FR)
//    F2 format string:   (-11.15, -17.00) (en-US)    (-11,15, -17,00) (fr-FR)
//    N2 format string:   (-11.15, -17.00) (en-US)    (-11,15, -17,00) (fr-FR)
//    G5 format string:   (-11.154, -17.002) (en-US)    (-11,154, -17,002) (fr-FR)

Universal Windows Platform
Available since 8
.NET Framework
Available since 4.0
Portable Class Library
Supported in: portable .NET platforms
Available since 4.0
Windows Phone
Available since 8.1
Return to top