Nach Umwandlung von decimal nach string das Vorzeichen anzeigen



  • Hallo,

    ich möchte gern eine decimal Variable nach String umwandeln, und zwar so, dass das Vorzeichen immer im String steht:

    decimal zahl = 89.0M;
    string mystring = zahl.ToString("000.00");
    

    "mystring" sollte so aussehen: +89.00

    Gibt es irgendein Formatierungszeichen, welches wie das Vorzeichen in "ToString()" interpretiert wird?

    Danke



  • Also, um immer auf 2 Stellen genau zu sein gibt es eine simple methode, schlag die mal nach 😉

    Und für das vorzeichen, würd mir jetzt auf die schnelle einfallen:
    if(zahl > 0)
    {
    myString = "+" + myString;
    }
    else if(zahl < 0)
    {
    myString = "-" + myString;
    }


  • Administrator

    http://msdn.microsoft.com/en-us/library/0c899ak8.aspx

    Um bei positiven Zahlen auch ein '+' zu sehen, kenne ich keine direkte Formatierungsmöglichkeit. Du wirst dies also wohl manuell machen müssen.

    Grüssli



  • Dravere schrieb:

    Um bei positiven Zahlen auch ein '+' zu sehen, kenne ich keine direkte Formatierungsmöglichkeit. Du wirst dies also wohl manuell machen müssen.
    Grüssli

    Das war auch meine Vermutung.

    Danke euch für die schnellen Antworten.



  • Auszug aus der MSDN:

    double posValue = 1234;
    double negValue = -1234;
    double zeroValue = 0;
    
    string fmt2 = "##;(##)";
    string fmt3 = "##;(##);**Zero**";
    
    Console.WriteLine(posValue.ToString(fmt2));    // Displays 1234
    Console.WriteLine(negValue.ToString(fmt2));    // Displays (1234)
    
    Console.WriteLine(zeroValue.ToString(fmt3));   // Displays **Zero**
    

    Wenn ich dem Code folge müsste folgendes Möglich sein:

    int myInt = -10500;
    int mySecondInt = 10500;
    
    string myFormat = "+000.00;000.00";
    
    // wenn ich das richtig verstanden habe steht hier anschließend -10.500
    Console.WriteLine(myInt.ToString(myFormat));
    
    // hier sollte meines verständnis nach +10.500 als Ausgabe erscheinen
    Console.WriteLine(mySecondInt(myFormat));
    

    Korrigiert mich wenn ich das Prinzip falsch verstanden habe.


  • Administrator

    Danke für den Hinweis inflames2k. Daran hatte ich gar nicht gedacht. Deine Formattierung ist aber noch nicht ganz richtig, aber folgendermasen müsste es gehen:

    "+0.00;-0.00"
    

    Grüssli



  • Ok, ich hatte es ja nicht getestet sondern nur meine Schlüsse gezogen. Ich ging davon aus, dass ein negativer Wert sein Vorzeichen sowieso erhält.


Anmelden zum Antworten