Auf Englisch lesen

Freigeben über


Double.ToString Methode

Definition

Konvertiert den Wert dieser Instanz in die entsprechende Zeichenfolgendarstellung.

Überlädt

ToString()

Konvertiert den Wert dieser Instanz in die entsprechende Zeichenfolgendarstellung.

ToString(IFormatProvider)

Konvertiert den numerischen Wert dieser Instanz unter Berücksichtigung der angegebenen kulturabhängigen Formatierungsinformationen in die entsprechende Zeichenfolgendarstellung.

ToString(String)

Konvertiert den numerischen Wert dieser Instanz in die entsprechende Zeichenfolgendarstellung unter Berücksichtigung des angegebenen Formats.

ToString(String, IFormatProvider)

Konvertiert den numerischen Wert dieser Instanz unter Verwendung des angegebenen Formats und der angegebenen kulturabhängigen Formatierungsinformationen in die entsprechende Zeichenfolgendarstellung.

ToString()

Quelle:
Double.cs
Quelle:
Double.cs
Quelle:
Double.cs

Konvertiert den Wert dieser Instanz in die entsprechende Zeichenfolgendarstellung.

C#
public override string ToString ();

Gibt zurück

Die Zeichenfolgendarstellung des Werts dieser Instanz.

Beispiele

Im folgenden Beispiel wird die Standardmethode Double.ToString() verwendet, um die Zeichenfolgendarstellungen einer Reihe von Double Werten anzuzeigen.

C#
double number;

number = 1.6E20;
// Displays 1.6E+20.
Console.WriteLine(number.ToString());

number = 1.6E2;
// Displays 160.
Console.WriteLine(number.ToString());

number = -3.541;
// Displays -3.541.
Console.WriteLine(number.ToString());

number = -1502345222199E-07;
// Displays -150234.5222199.
Console.WriteLine(number.ToString());

number = -15023452221990199574E-09;
// Displays -15023452221.9902.
Console.WriteLine(number.ToString());

number = .60344;
// Displays 0.60344.
Console.WriteLine(number.ToString());

number = .000000001;
// Displays 1E-09.
Console.WriteLine(number.ToString());

Im folgenden Beispiel wird die Verwendung von ToString veranschaulicht.

C#
bool done = false;
string inp;
do {
   Console.Write("Enter a real number: ");
   inp = Console.ReadLine();
   try {
      d = Double.Parse(inp);
      Console.WriteLine("You entered {0}.", d.ToString());
      done = true;
   }
   catch (FormatException) {
      Console.WriteLine("You did not enter a number.");
   }
   catch (ArgumentNullException) {
      Console.WriteLine("You did not supply any input.");
   }
   catch (OverflowException) {
       Console.WriteLine("The value you entered, {0}, is out of range.", inp);
   }
} while (!done);

Hinweise

Die ToString() -Methode formatiert einen Double Wert im Standardformat ("G" oder allgemein) der aktuellen Kultur. Wenn Sie ein anderes Format, eine andere Genauigkeit oder Kultur angeben möchten, verwenden Sie die anderen Überladungen der ToString -Methode wie folgt:

So verwenden Sie das Format Für Kultur Verwenden der Überladung
Standardformat ("G") Eine bestimmte Kultur ToString(IFormatProvider)
Ein bestimmtes Format oder eine bestimmte Genauigkeit Standardkultur (aktuell) ToString(String)
Ein bestimmtes Format oder eine bestimmte Genauigkeit Eine bestimmte Kultur ToString(String, IFormatProvider)

Der Rückgabewert kann , NegativeInfinitySymbol, NaNSymboloder eine Zeichenfolge der Form seinPositiveInfinitySymbol:

[sign]integral-digits[.[ Bruchstellen]][E[Zeichen]exponentielle Ziffern]

Optionale Elemente werden in eckigen Klammern ([ und ]) eingerahmt. Elemente, die den Begriff "Ziffern" enthalten, bestehen aus einer Reihe numerischer Zeichen im Bereich von 0 bis 9. Die in der folgenden Tabelle aufgeführten Elemente werden unterstützt.

Element BESCHREIBUNG
sign Ein negatives oder positives Zeichensymbol.
Ganzzahlige Ziffern Eine Reihe von Ziffern, die den integralen Teil der Zahl angeben. Ganzzahlige Ziffern können fehlen, wenn Bruchstellen vorhanden sind.
'.' Ein kulturspezifisches Dezimaltrennzeichen.
Bruchstellen Eine Reihe von Ziffern, die den Bruchteil der Zahl angeben.
"E" Ein Großbuchstaben "E", das die exponentielle (wissenschaftliche) Notation angibt.
exponentielle Ziffern Eine Reihe von Ziffern, die einen Exponenten angeben.

Einige Beispiele für den Rückgabewert sind "100", "-123.456.789", "123.45E+6", "500", "3.1416", "600", "-0.123" und "-Infinity".

.NET bietet umfassende Formatierungsunterstützung, die in den folgenden Formatierungsthemen ausführlicher beschrieben wird:

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToString(IFormatProvider)

Quelle:
Double.cs
Quelle:
Double.cs
Quelle:
Double.cs

Konvertiert den numerischen Wert dieser Instanz unter Berücksichtigung der angegebenen kulturabhängigen Formatierungsinformationen in die entsprechende Zeichenfolgendarstellung.

C#
public string ToString (IFormatProvider provider);
C#
public string ToString (IFormatProvider? provider);

Parameter

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.

Gibt zurück

Die Zeichenfolgendarstellung des Werts dieser Instanz entsprechend den Angaben von provider.

Implementiert

Beispiele

Im folgenden Beispiel wird die Zeichenfolgendarstellung von zwei Double Werten mithilfe CultureInfo von Objekten angezeigt, die mehrere verschiedene Kulturen darstellen.

C#
double value;

value = -16325.62015;
// Display value using the invariant culture.
Console.WriteLine(value.ToString(CultureInfo.InvariantCulture));
// Display value using the en-GB culture.
Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("en-GB")));
// Display value using the de-DE culture.
Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("de-DE")));

value = 16034.125E21;
// Display value using the invariant culture.
Console.WriteLine(value.ToString(CultureInfo.InvariantCulture));
// Display value using the en-GB culture.
Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("en-GB")));
// Display value using the de-DE culture.
Console.WriteLine(value.ToString(CultureInfo.CreateSpecificCulture("de-DE")));
// This example displays the following output to the console:
//       -16325.62015
//       -16325.62015
//       -16325,62015
//       1.6034125E+25
//       1.6034125E+25
//       1,6034125E+25

Das folgende Beispiel veranschaulicht die Verwendung von ToString, wobei ein String und als IFormatProvider Parameter verwendet werden.

C#
public class Temperature : IFormattable {
    // IFormattable.ToString implementation.
    public string ToString(string format, IFormatProvider provider) {
        if( format != null ) {
            if( format.Equals("F") ) {
                return String.Format("{0}'F", this.Value.ToString());
            }
            if( format.Equals("C") ) {
                return String.Format("{0}'C", this.Celsius.ToString());
            }
        }

        return m_value.ToString(format, provider);
    }

    // The value holder
    protected double m_value;

    public double Value {
        get {
            return m_value;
        }
        set {
            m_value = value;
        }
    }

    public double Celsius {
        get {
            return (m_value-32.0)/1.8;
        }
        set {
            m_value = 1.8*value+32.0;
        }
    }
}

Hinweise

Die ToString(IFormatProvider) -Methode formatiert einen Double Wert im Standardformat ("G" oder allgemein) einer angegebenen Kultur. Wenn Sie ein anderes Format oder eine andere Kultur angeben möchten, verwenden Sie die anderen Überladungen der ToString -Methode wie folgt:

So verwenden Sie das Format Für Kultur Verwenden der Überladung
Standardformat ("G") Standard (aktuell) ToString()
Ein bestimmtes Format oder eine bestimmte Genauigkeit Standardkultur (aktuell) ToString(String)
Ein bestimmtes Format oder eine bestimmte Genauigkeit Eine bestimmte Kultur ToString(String, IFormatProvider)

Der Rückgabewert kann , NegativeInfinitySymbol, NaNSymboloder eine Zeichenfolge der Form seinPositiveInfinitySymbol:

[sign]integral-digits[.[ Bruchstellen]][E[Zeichen]exponentielle Ziffern]

Optionale Elemente werden in eckigen Klammern ([ und ]) eingerahmt. Elemente, die den Begriff "Ziffern" enthalten, bestehen aus einer Reihe numerischer Zeichen im Bereich von 0 bis 9. Die in der folgenden Tabelle aufgeführten Elemente werden unterstützt.

Element BESCHREIBUNG
sign Ein negatives oder positives Zeichensymbol.
Ganzzahlige Ziffern Eine Reihe von Ziffern, die den integralen Teil der Zahl angeben. Ganzzahlige Ziffern können fehlen, wenn Bruchstellen vorhanden sind.
'.' Ein kulturspezifisches Dezimaltrennzeichen.
Bruchstellen Eine Reihe von Ziffern, die den Bruchteil der Zahl angeben.
"E" Ein Großbuchstaben "E", das die exponentielle (wissenschaftliche) Notation angibt.
exponentielle Ziffern Eine Reihe von Ziffern, die einen Exponenten angeben.

Einige Beispiele für den Rückgabewert sind "100", "-123.456.789", "123.45E+6", "500", "3.1416", "600", "-0.123" und "-Infinity".

Diese Instanz wird mit dem allgemeinen numerischen Formatbezeichner ("G") formatiert.

.NET bietet umfassende Formatierungsunterstützung, die in den folgenden Formatierungsthemen ausführlicher beschrieben wird:

Der provider Parameter ist eine IFormatProvider Implementierung, deren GetFormat Methode ein NumberFormatInfo -Objekt zurückgibt. provider In der Regel ist ein CultureInfo -Objekt oder ein NumberFormatInfo -Objekt. Der provider Parameter stellt kulturspezifische Informationen bereit, die bei der Formatierung verwendet werden. Wenn provider ist null, wird der Rückgabewert mithilfe des NumberFormatInfo -Objekts für die aktuelle Kultur formatiert.

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToString(String)

Quelle:
Double.cs
Quelle:
Double.cs
Quelle:
Double.cs

Konvertiert den numerischen Wert dieser Instanz in die entsprechende Zeichenfolgendarstellung unter Berücksichtigung des angegebenen Formats.

C#
public string ToString (string format);
C#
public string ToString (string? format);

Parameter

format
String

Eine numerische Formatierungszeichenfolge.

Gibt zurück

Die Zeichenfolgendarstellung des Werts dieser Instanz entsprechend den Angaben von format.

Ausnahmen

format ist ungültig.

Beispiele

Im folgenden Beispiel wird ein numerischer Wert definiert und als Währungswert mithilfe der standardmäßigen numerischen Formatzeichenfolge "C" und als numerischer Wert an drei Dezimalstellen formatiert, indem die standardmäßige numerische Formatzeichenfolge "N" verwendet wird. Die Ergebniszeichenfolgen werden mithilfe der Konventionen der en-US-Kultur formatiert. Weitere Informationen zu numerischen Formatzeichenfolgen finden Sie unter Standardmäßige numerische Formatzeichenfolgen und benutzerdefinierte numerische Formatzeichenfolgen.

C#
using System;

public class Example
{
   public static void Main()
   {
      float number = 1764.3789m;

      // Format as a currency value.
      Console.WriteLine(number.ToString("C"));

      // Format as a numeric value with 3 decimal places.
      Console.WriteLine(number.ToString("N3"));
   }
}
// The example displays the following output:
//       $1,764.38
//       1,764.379

Im folgenden Beispiel werden mehrere Double Werte mit den unterstützten numerischen Standardformatbezeichnern zusammen mit drei benutzerdefinierten numerischen Formatzeichenfolgen angezeigt. Eine dieser benutzerdefinierten Formatzeichenfolgen veranschaulicht, wie sie einen Single Wert mit führenden Nullen auffüllen. Darüber hinaus verwendet das Beispiel Präzisionsspezifizierer mit jedem Standardformatbezeichner mit Ausnahme von "R". Die Werte der Genauigkeitsbezeichner liegen zwischen 0 und 3. Zum Konvertieren der numerischen Werte in Zeichenfolgen verwendet das Beispiel die Formatierungskonventionen der en-US-Kultur.

C#
double[] numbers= {1054.32179, -195489100.8377, 1.0437E21,
                   -1.0573e-05};
string[] specifiers = { "C", "E", "e", "F", "G", "N", "P",
                        "R", "#,000.000", "0.###E-000",
                        "000,000,000,000.00###" };
foreach (double number in numbers)
{
   Console.WriteLine("Formatting of {0}:", number);
   foreach (string specifier in specifiers) {
      Console.WriteLine("   {0,-22} {1}",
                        specifier + ":", number.ToString(specifier));
      // Add precision specifiers from 0 to 3.
      if (specifier.Length == 1 & ! specifier.Equals("R")) {
         for (int precision = 0; precision <= 3; precision++) {
            string pSpecifier = String.Format("{0}{1}", specifier, precision);
            Console.WriteLine("   {0,-22} {1}",
                              pSpecifier + ":", number.ToString(pSpecifier));
         }
         Console.WriteLine();
      }
   }
   Console.WriteLine();
}
// The example displays the following output to the console:
//       Formatting of 1054.32179:
//          C:                     $1,054.32
//          C0:                    $1,054
//          C1:                    $1,054.3
//          C2:                    $1,054.32
//          C3:                    $1,054.322
//
//          E:                     1.054322E+003
//          E0:                    1E+003
//          E1:                    1.1E+003
//          E2:                    1.05E+003
//          E3:                    1.054E+003
//
//          e:                     1.054322e+003
//          e0:                    1e+003
//          e1:                    1.1e+003
//          e2:                    1.05e+003
//          e3:                    1.054e+003
//
//          F:                     1054.32
//          F0:                    1054
//          F1:                    1054.3
//          F2:                    1054.32
//          F3:                    1054.322
//
//          G:                     1054.32179
//          G0:                    1054.32179
//          G1:                    1E+03
//          G2:                    1.1E+03
//          G3:                    1.05E+03
//
//          N:                     1,054.32
//          N0:                    1,054
//          N1:                    1,054.3
//          N2:                    1,054.32
//          N3:                    1,054.322
//
//          P:                     105,432.18 %
//          P0:                    105,432 %
//          P1:                    105,432.2 %
//          P2:                    105,432.18 %
//          P3:                    105,432.179 %
//
//          R:                     1054.32179
//          #,000.000:             1,054.322
//          0.###E-000:            1.054E003
//          000,000,000,000.00###: 000,000,001,054.32179
//
//       Formatting of -195489100.8377:
//          C:                     ($195,489,100.84)
//          C0:                    ($195,489,101)
//          C1:                    ($195,489,100.8)
//          C2:                    ($195,489,100.84)
//          C3:                    ($195,489,100.838)
//
//          E:                     -1.954891E+008
//          E0:                    -2E+008
//          E1:                    -2.0E+008
//          E2:                    -1.95E+008
//          E3:                    -1.955E+008
//
//          e:                     -1.954891e+008
//          e0:                    -2e+008
//          e1:                    -2.0e+008
//          e2:                    -1.95e+008
//          e3:                    -1.955e+008
//
//          F:                     -195489100.84
//          F0:                    -195489101
//          F1:                    -195489100.8
//          F2:                    -195489100.84
//          F3:                    -195489100.838
//
//          G:                     -195489100.8377
//          G0:                    -195489100.8377
//          G1:                    -2E+08
//          G2:                    -2E+08
//          G3:                    -1.95E+08
//
//          N:                     -195,489,100.84
//          N0:                    -195,489,101
//          N1:                    -195,489,100.8
//          N2:                    -195,489,100.84
//          N3:                    -195,489,100.838
//
//          P:                     -19,548,910,083.77 %
//          P0:                    -19,548,910,084 %
//          P1:                    -19,548,910,083.8 %
//          P2:                    -19,548,910,083.77 %
//          P3:                    -19,548,910,083.770 %
//
//          R:                     -195489100.8377
//          #,000.000:             -195,489,100.838
//          0.###E-000:            -1.955E008
//          000,000,000,000.00###: -000,195,489,100.8377
//
//       Formatting of 1.0437E+21:
//          C:                     $1,043,700,000,000,000,000,000.00
//          C0:                    $1,043,700,000,000,000,000,000
//          C1:                    $1,043,700,000,000,000,000,000.0
//          C2:                    $1,043,700,000,000,000,000,000.00
//          C3:                    $1,043,700,000,000,000,000,000.000
//
//          E:                     1.043700E+021
//          E0:                    1E+021
//          E1:                    1.0E+021
//          E2:                    1.04E+021
//          E3:                    1.044E+021
//
//          e:                     1.043700e+021
//          e0:                    1e+021
//          e1:                    1.0e+021
//          e2:                    1.04e+021
//          e3:                    1.044e+021
//
//          F:                     1043700000000000000000.00
//          F0:                    1043700000000000000000
//          F1:                    1043700000000000000000.0
//          F2:                    1043700000000000000000.00
//          F3:                    1043700000000000000000.000
//
//          G:                     1.0437E+21
//          G0:                    1.0437E+21
//          G1:                    1E+21
//          G2:                    1E+21
//          G3:                    1.04E+21
//
//          N:                     1,043,700,000,000,000,000,000.00
//          N0:                    1,043,700,000,000,000,000,000
//          N1:                    1,043,700,000,000,000,000,000.0
//          N2:                    1,043,700,000,000,000,000,000.00
//          N3:                    1,043,700,000,000,000,000,000.000
//
//          P:                     104,370,000,000,000,000,000,000.00 %
//          P0:                    104,370,000,000,000,000,000,000 %
//          P1:                    104,370,000,000,000,000,000,000.0 %
//          P2:                    104,370,000,000,000,000,000,000.00 %
//          P3:                    104,370,000,000,000,000,000,000.000 %
//
//          R:                     1.0437E+21
//          #,000.000:             1,043,700,000,000,000,000,000.000
//          0.###E-000:            1.044E021
//          000,000,000,000.00###: 1,043,700,000,000,000,000,000.00
//
//       Formatting of -1.0573E-05:
//          C:                     $0.00
//          C0:                    $0
//          C1:                    $0.0
//          C2:                    $0.00
//          C3:                    $0.000
//
//          E:                     -1.057300E-005
//          E0:                    -1E-005
//          E1:                    -1.1E-005
//          E2:                    -1.06E-005
//          E3:                    -1.057E-005
//
//          e:                     -1.057300e-005
//          e0:                    -1e-005
//          e1:                    -1.1e-005
//          e2:                    -1.06e-005
//          e3:                    -1.057e-005
//
//          F:                     0.00
//          F0:                    0
//          F1:                    0.0
//          F2:                    0.00
//          F3:                    0.000
//
//          G:                     -1.0573E-05
//          G0:                    -1.0573E-05
//          G1:                    -1E-05
//          G2:                    -1.1E-05
//          G3:                    -1.06E-05
//
//          N:                     0.00
//          N0:                    0
//          N1:                    0.0
//          N2:                    0.00
//          N3:                    0.000
//
//          P:                     0.00 %
//          P0:                    0 %
//          P1:                    0.0 %
//          P2:                    0.00 %
//          P3:                    -0.001 %
//
//          R:                     -1.0573E-05
//          #,000.000:             000.000
//          0.###E-000:            -1.057E-005
//          000,000,000,000.00###: -000,000,000,000.00001

Hinweise

Die ToString(String) -Methode formatiert einen Double Wert in einem angegebenen Format unter Verwendung der Konventionen der aktuellen Kultur. Wenn Sie ein anderes Format oder eine andere Kultur angeben möchten, verwenden Sie die anderen Überladungen der ToString -Methode wie folgt:

So verwenden Sie das Format Für Kultur Verwenden der Überladung
Standardformat ("G") Standardkultur (aktuell) ToString()
Standardformat ("G") Eine bestimmte Kultur ToString(IFormatProvider)
Ein bestimmtes Format oder eine bestimmte Genauigkeit Eine bestimmte Kultur ToString(String, IFormatProvider)

Der Rückgabewert kann , NegativeInfinitySymbol, NaNSymboloder die Zeichenfolgendarstellung einer Zahl seinPositiveInfinitySymbol, wie durch formatangegeben.

Der format Parameter kann ein beliebiger gültiger numerischer Standardformatbezeichner mit Ausnahme von D und X sowie eine beliebige Kombination von benutzerdefinierten numerischen Formatbezeichnern sein. Wenn format oder eine leere Zeichenfolge ist null , wird der Rückgabewert mit dem allgemeinen numerischen Formatbezeichner ("G") formatiert.

.NET bietet umfassende Formatierungsunterstützung, die in den folgenden Formatierungsthemen ausführlicher beschrieben wird:

Standardmäßig enthält der Rückgabewert nur 15 Ziffern der Genauigkeit, obwohl maximal 17 Ziffern intern beibehalten werden. Wenn der Wert dieser Instanz größer als 15 Ziffern ist, ToString wird oder NegativeInfinitySymbol anstelle der erwarteten Zahl zurückgegebenPositiveInfinitySymbol. Wenn Sie eine höhere Genauigkeit benötigen, geben Sie format mit der Formatspezifikation "G17" an, die immer 17 Ziffern der Genauigkeit zurückgibt, oder "R", das 15 Ziffern zurückgibt, wenn die Zahl mit dieser Genauigkeit dargestellt werden kann, oder 17 Ziffern, wenn die Zahl nur mit maximaler Genauigkeit dargestellt werden kann.

Hinweise für Aufrufer

In einigen Fällen werden Double-Werte, die mit der Standardformatzeichenfolge für Zahlen "R" formatiert sind, nicht erfolgreich zurückkonvertiert, wenn sie mit dem /platform:x64- oder dem /platform:anycpu-Parameter kompiliert wurden und auf 64-Bit-Systemen ausgeführt werden. Um dieses Problem zu umgehen, formatieren Sie Double-Werte mit der Standardformatzeichenfolge für Zahlen "G17". Im folgenden Beispiel wird die Formatzeichenfolge "R" mit einem Double-Wert verwendet, der nicht erfolgreich zurückkonvertiert wird, und es wird die Formatzeichenfolge "G17" verwendet, um erfolgreich in den ursprünglichen Wert zurückzukonvertieren.

C#
using System;

public class Example
{
   static void Main(string[] args)
   {
      Console.WriteLine("Attempting to round-trip a Double with 'R':");
      double initialValue = 0.6822871999174;
      string valueString = initialValue.ToString("R");
      double roundTripped = double.Parse(valueString);
      Console.WriteLine("{0:R} = {1:R}: {2}\n",
                        initialValue, roundTripped, initialValue.Equals(roundTripped));

      Console.WriteLine("Attempting to round-trip a Double with 'G17':");
      string valueString17 = initialValue.ToString("G17");
      double roundTripped17 = double.Parse(valueString17);
      Console.WriteLine("{0:R} = {1:R}: {2}\n",
                        initialValue, roundTripped17, initialValue.Equals(roundTripped17));
   }
}
// If compiled to an application that targets anycpu or x64 and run on an x64 system,
// the example displays the following output:
//       Attempting to round-trip a Double with 'R':
//       0.6822871999174 = 0.68228719991740006: False
//
//       Attempting to round-trip a Double with 'G17':
//       0.6822871999174 = 0.6822871999174: True

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

ToString(String, IFormatProvider)

Quelle:
Double.cs
Quelle:
Double.cs
Quelle:
Double.cs

Konvertiert den numerischen Wert dieser Instanz unter Verwendung des angegebenen Formats und der angegebenen kulturabhängigen Formatierungsinformationen in die entsprechende Zeichenfolgendarstellung.

C#
public string ToString (string format, IFormatProvider provider);
C#
public string ToString (string? format, IFormatProvider? provider);

Parameter

format
String

Eine numerische Formatierungszeichenfolge.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.

Gibt zurück

Die Zeichenfolgendarstellung des Werts dieser Instanz entsprechend den Angaben von format und provider.

Implementiert

Beispiele

Im folgenden Beispiel wird ein Double Wert mit jedem der unterstützten numerischen Standardformatbezeichner für verschiedene Kulturen angezeigt.

C#
double value = 16325.62901;
string specifier;
CultureInfo culture;

// Use standard numeric format specifiers.
specifier = "G";
culture = CultureInfo.CreateSpecificCulture("eu-ES");
Console.WriteLine(value.ToString(specifier, culture));
// Displays:    16325,62901
Console.WriteLine(value.ToString(specifier, CultureInfo.InvariantCulture));
// Displays:    16325.62901

specifier = "C";
culture = CultureInfo.CreateSpecificCulture("en-US");
Console.WriteLine(value.ToString(specifier, culture));
// Displays:    $16,325.63
culture = CultureInfo.CreateSpecificCulture("en-GB");
Console.WriteLine(value.ToString(specifier, culture));
// Displays:    £16,325.63

specifier = "E04";
culture = CultureInfo.CreateSpecificCulture("sv-SE");
Console.WriteLine(value.ToString(specifier, culture));
// Displays: 1,6326E+004
 culture = CultureInfo.CreateSpecificCulture("en-NZ");
 Console.WriteLine(value.ToString(specifier, culture));
// Displays:    1.6326E+004

specifier = "F";
culture = CultureInfo.CreateSpecificCulture("fr-FR");
Console.WriteLine(value.ToString(specifier, culture));
// Displays:    16325,63
culture = CultureInfo.CreateSpecificCulture("en-CA");
Console.WriteLine(value.ToString(specifier, culture));
// Displays:    16325.63

specifier = "N";
culture = CultureInfo.CreateSpecificCulture("es-ES");
Console.WriteLine(value.ToString(specifier, culture));
// Displays:    16.325,63
culture = CultureInfo.CreateSpecificCulture("fr-CA");
Console.WriteLine(value.ToString(specifier, culture));
// Displays:    16 325,63

specifier = "P";
culture = CultureInfo.InvariantCulture;
Console.WriteLine((value/10000).ToString(specifier, culture));
// Displays:    163.26 %
culture = CultureInfo.CreateSpecificCulture("ar-EG");
Console.WriteLine((value/10000).ToString(specifier, culture));
// Displays:    163.256 %

Das folgende Beispiel veranschaulicht die Verwendung von ToString, wobei ein String und als IFormatProvider Parameter verwendet werden.

C#
public class Temperature : IFormattable {
    // IFormattable.ToString implementation.
    public string ToString(string format, IFormatProvider provider) {
        if( format != null ) {
            if( format.Equals("F") ) {
                return String.Format("{0}'F", this.Value.ToString());
            }
            if( format.Equals("C") ) {
                return String.Format("{0}'C", this.Celsius.ToString());
            }
        }

        return m_value.ToString(format, provider);
    }

    // The value holder
    protected double m_value;

    public double Value {
        get {
            return m_value;
        }
        set {
            m_value = value;
        }
    }

    public double Celsius {
        get {
            return (m_value-32.0)/1.8;
        }
        set {
            m_value = 1.8*value+32.0;
        }
    }
}

Hinweise

Die ToString(String, IFormatProvider) -Methode formatiert einen Double Wert in einem angegebenen Format einer angegebenen Kultur. Wenn Sie ein anderes Format oder eine andere Kultur angeben möchten, verwenden Sie die anderen Überladungen der ToString -Methode wie folgt:

So verwenden Sie das Format Für Kultur Verwenden der Überladung
Standardformat ("G") Standardkultur (aktuell) ToString()
Standardformat ("G") Eine bestimmte Kultur ToString(IFormatProvider)
Ein bestimmtes Format oder eine bestimmte Genauigkeit Standardkultur (aktuell) ToString(String)

Der Rückgabewert kann , NegativeInfinitySymbol, NaNSymboloder die Zeichenfolgendarstellung einer Zahl seinPositiveInfinitySymbol, wie durch formatangegeben.

Der format Parameter kann ein beliebiger gültiger numerischer Standardformatbezeichner mit Ausnahme von D und X sowie eine beliebige Kombination von benutzerdefinierten numerischen Formatbezeichnern sein. Wenn format oder eine leere Zeichenfolge ist null , wird der Rückgabewert für diese Instanz mit dem allgemeinen numerischen Formatbezeichner ("G") formatiert.

.NET bietet umfassende Formatierungsunterstützung, die in den folgenden Formatierungsthemen ausführlicher beschrieben wird:

Der provider Parameter ist eine IFormatProvider Implementierung, deren GetFormat Methode ein NumberFormatInfo -Objekt zurückgibt. provider In der Regel ist ein CultureInfo -Objekt oder ein NumberFormatInfo -Objekt. Der provider Parameter stellt kulturspezifische Informationen bereit, die bei der Formatierung verwendet werden. Wenn provider ist null, wird der Rückgabewert mithilfe des NumberFormatInfo -Objekts für die aktuelle Kultur formatiert.

Standardmäßig enthält der Rückgabewert nur 15 Ziffern der Genauigkeit, obwohl maximal 17 Ziffern intern beibehalten werden. Wenn der Wert dieser Instanz größer als 15 Ziffern ist, ToString wird oder NegativeInfinitySymbol anstelle der erwarteten Zahl zurückgegebenPositiveInfinitySymbol. Wenn Sie eine höhere Genauigkeit benötigen, geben Sie format mit der Formatspezifikation "G17" an, die immer 17 Ziffern der Genauigkeit zurückgibt, oder "R", das 15 Ziffern zurückgibt, wenn die Zahl mit dieser Genauigkeit dargestellt werden kann, oder 17 Ziffern, wenn die Zahl nur mit maximaler Genauigkeit dargestellt werden kann.

Hinweise für Aufrufer

In einigen Fällen werden Double-Werte, die mit der Standardformatzeichenfolge für Zahlen "R" formatiert sind, nicht erfolgreich zurückkonvertiert, wenn sie mit dem /platform:x64- oder dem /platform:anycpu-Parameter kompiliert wurden und auf 64-Bit-Systemen ausgeführt werden. Um dieses Problem zu umgehen, formatieren Sie Double-Werte mit der Standardformatzeichenfolge für Zahlen "G17". Im folgenden Beispiel wird die Formatzeichenfolge "R" mit einem Double-Wert verwendet, der nicht erfolgreich zurückkonvertiert wird, und es wird die Formatzeichenfolge "G17" verwendet, um erfolgreich in den ursprünglichen Wert zurückzukonvertieren.

C#
using System;
using System.Globalization;

public class Example
{
   static void Main(string[] args)
   {
      Console.WriteLine("Attempting to round-trip a Double with 'R':");
      double initialValue = 0.6822871999174;
      string valueString = initialValue.ToString("R",
                                                 CultureInfo.InvariantCulture);
      double roundTripped = double.Parse(valueString,
                                         CultureInfo.InvariantCulture);
      Console.WriteLine("{0:R} = {1:R}: {2}\n",
                        initialValue, roundTripped, initialValue.Equals(roundTripped));

      Console.WriteLine("Attempting to round-trip a Double with 'G17':");
      string valueString17 = initialValue.ToString("G17",
                                                   CultureInfo.InvariantCulture);
      double roundTripped17 = double.Parse(valueString17,
                                           CultureInfo.InvariantCulture);
      Console.WriteLine("{0:R} = {1:R}: {2}\n",
                        initialValue, roundTripped17, initialValue.Equals(roundTripped17));
      // If compiled to an application that targets anycpu or x64 and run on an x64 system,
      // the example displays the following output:
      //       Attempting to round-trip a Double with 'R':
      //       0.6822871999174 = 0.68228719991740006: False
      //
      //       Attempting to round-trip a Double with 'G17':
      //       0.6822871999174 = 0.6822871999174: True
   }
}

Weitere Informationen

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0