Laden...

String auf zwei Nachkommastellen

Erstellt von Vril vor 14 Jahren Letzter Beitrag vor 14 Jahren 15.104 Views
V
Vril Themenstarter:in
86 Beiträge seit 2008
vor 14 Jahren
String auf zwei Nachkommastellen

Hallo,

ich habe einen String in einem Label stehen, z.B. "9.18", diesen Wert lese ich aus dem Label aus und möchte ihn auf eine Nachkommastelle bringen, das mache ich so:


...String.Format("{0:F1}",textSchlittenweg.Text.ToString()),...

Es wird aber immer "9.18" ausgegeben, gewünscht wäre allerdings "9.2" oder von mir aus auch "9.1".

Hat zufällig jemand eine Idee was ich falsch mache?

3.430 Beiträge seit 2007
vor 14 Jahren

Hallo Vril,

versuch es mal so


..String.Format("{0:0.0}", textSchlittenweg.Text);

siehe: http://blog.stevex.net/string-formatting-in-csharp/

Gruss
Michael

946 Beiträge seit 2008
vor 14 Jahren

Um diese Formatbezeichner zu verwenden, muss es halt eine Zahl sein, und die Text-Property bei einem Label riecht so nach string.

Das einfachste wäre, sie zu parsen:

 decimal number;
if (decimal.TryParse(textSchlittenweg.Text, out number))
   MessageBox.Show(String.Format("{0:F1}", number); // oder was du auch willlst

anstatt decimal kannst du auch double oder float verwenden, hauptsache ist, dass das Objekt mit dem Formatbezeichner "0.0" oder "F1" umgehen kann, was bei einem string nicht der fall ist.

mfg
SeeQuark

D
171 Beiträge seit 2008
vor 14 Jahren
string=string.Substring(0,(string.IndexOf('.')+1));

+1, oder +2 aber wenn es so statisch geht das auch.

Was du willst ist doch eine Nachkommastelle oder sehe ich das falsch? Ich meine mit substring geht beides^^

946 Beiträge seit 2008
vor 14 Jahren

Das geht natürlich auch, solange die Eingaben gleich bleiben.
Das Problem sind dann zum Beispiel :::{style="color: darkred;"}"1.2.3"){darkred}, :::{style="color: darkred;"}"123"){darkred}, :::{style="color: darkred;"}"hello.world"){darkred} oder einfach nur :::{style="color: darkred;"}"."){darkred}. Bei manchen tritt sogar eine Exception auf.
Insgesamt, also wenn man solche Sachen berücksichtigt, braucht man so etwas mehr Code, ist aber etwas schneller.

mfg
SeeQuark