Format einer Dezimalzahl ohne Komma
ich versuche zu formatieren, dezimal mit 0:0.0 in c#
habe versucht diesen code
string nv = textBox7.Text.Trim().Replace(',', '.');
res = Convert.ToDecimal(nv, new CultureInfo("en-GB"));
aber res zeigen immer ein Ergebnis mit einem Komma versucht, auch mit
new CultureInfo("en-GB")
aber das problem weiterhin besteht
Und vielen Dank im Voraus.
res
ist ein decimal
sein, kein string. Es kann also nicht ein format haben.Was bedeutet
0:0.0
sogar bedeuten, dass für eine decimal
? Was ist die Bedeutung des :
?Ich denke, es steht für
0
th parameter in string.Format
.Es ist eine gute Vermutung, und was ich auch übernehmen, sondern möchte, dass der OP zu erklären, denn es ist nicht ganz klar.
Was der debugger zeigt für den Wert für res hat nichts zu tun mit der Art, wie es gespeichert werden in der dbase. Stellen Sie sicher, dass Ihre dbase-Spalte numerisch ist und nicht text.
InformationsquelleAutor tarek | 2012-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als andere Kommentare und Antworten vorschlagen, haben Sie einige Grundlagen zu verstehen, zunächst. Ich kann sagen, einige Dinge, die Sie bereits kennen, aber Geduld mit mir:
textBox7.Text
enthält einestring
, nicht eindecimal
.decimal
für die Berechnungen, die Sie haben, um Sie zu konvertieren (ich denke, dass Sie schon so weit gekommen ist)res
ist eine Dezimalzahl, Wann immer Sie wollen, seinen Blick auf ETWAS Wert konvertiert es in einstring
. Ob das schreiben an dieConsole
oder Ihr debugger, wenn Sie die Maus über Sie. Die Bekehrung wird, verwenden Sie Ihren aktuellen Regionalen Einstellungen. Diese ist, warum Sie immer ein Komma.a) Standard-Format. Beispiel:
Console.WriteLine(res.toString("F2"));
Dieses format 123456 mit 2 zahlen nach dem Komma: 123456.00
b) Benutzerdefiniertes Format. Beispiel:
Console.WriteLine(res.toString("[##-##-##]"));
Dies wird die Ausgabe 123456 etwas wie [12-34-56]
c) CultureInfo. Beispiel:
Console.WriteLine(res.ToString(CultureInfo.CreateSpecificCulture("nl-BE")));
Diese Ausgabe wird 1234.56 wie in Belgien: mit einem Komma 1234,56
Übrigens, ich denke, "en-GB" gibt auch ein Komma 🙂
d) Kombinieren. Nüsse gehen! Beides tun ! Beispiel:
Console.WriteLine(res.ToString("F2", CultureInfo.CreateSpecificCulture("nl-BE")));
Formate 123456 zu 123456,00 !
InformationsquelleAutor Vincent Vancalbergh
res
ist eindecimal
sein, kein string. Es kann also nicht ein format haben. Dezimalstellen sind rein mathematische zahlen ohne eine zugehörige format. Das format kommt nur zustande, wenn Sie konvertieren eindecimal
zu einemstring
.Können Sie
res.ToString(CultureInfo.InvariantCulture)
zu produzieren, die eine Zeichenfolge, die verwendet.
als Dezimaltrennzeichen.Und wo ist dein problem?
das problem ist gelöst, ich dachte, ich sollte eine decimal-variable verwenden Sie ein sqlCommand-Anweisung, sondern auch ein string machen das gleiche denken, die ich verwendet, string nv = textBox7.Text.Trim().Ersetzen(',', '.');
Ich verstehe dich nicht, aber
Replace(',', '.')
ist sicherlich nicht die richtige Antwort.möglich Sie möchten
decimal.ToString(decimal.Parse(input,someCulture), CultureInfo.InvariantCulture)
, aber Sie sind so vage, dass ich nicht verstehe Ihre eigentliche problem sein.InformationsquelleAutor CodesInChaos