Hüsi Geschrieben 20. November 2008 Geschrieben 20. November 2008 (bearbeitet) Hallo zusammen, versuch mich gerade ein wenig an C# und bastle gerade eine Stopuhr. Bei der Formatierung der Anzeige habe ich ein Problem mit führenden Nullen. Wollte das Ganze mit String.Format lösen, habe allerdings das Problem, dass das String.Format nur genau solange funktioniert, bis ich anstatt einer Zahl die Variable einfüge: String.Format("{0:D2}", 2) liefert wie gewünscht 02 String.Format("{0:D2}", minutes) liefert solange minutes einstellig ist auch nur einstellig die Ausgabe. Wo ist mein Denkfehler? Bearbeitet 20. November 2008 von Hüsi Zitieren
Pointerman Geschrieben 20. November 2008 Geschrieben 20. November 2008 Moin! Ich konnte Dein Problem nicht ganz nachvollziehen. Ich habe mir einfach mal ein kleines Testprojekt erstellt, mit einem Button und einem Label. Im OnClick des Button steht: int bla = 2; label1.Text = String.Format("{0:D2}", bla); [/PHP] Wie nicht anders erwartet steht danach "02" im Label. Welchen Typ hat denn dein "minutes"? Vielleicht liegt es ja daran. Zitieren
Hüsi Geschrieben 20. November 2008 Autor Geschrieben 20. November 2008 die einzelnen Variablen habe ich als String definiert private string minutes = "", seconds ="", milliseconds=""; und fülle Sie folgendermaßen: minutes = ((timer / 60 / 60).ToString()); seconds = (timer / 60 %60).ToString(); milliseconds = (timer %60).ToString(); das Label fütter ich so: label1.Text = String.Format("{0:D2}", minutes) + ":" + String.Format("{0:D2}", seconds) + ":" + String.Format("{0:D2}", milliseconds); timer selbst ist Integer. Zitieren
Pointerman Geschrieben 20. November 2008 Geschrieben 20. November 2008 (bearbeitet) Dann versuch doch einfach mal String.Format mit den Integer-Werten, statt den Strings zu fuettern. D.h. deklariere minutes, seconds und milliseconds als integer und lass dann die Umwandlung in den String weg. Dann sollte es funktionieren. //mit dem (int) vor der Berechnung bin ich mir nicht 100%ig sicher, aber ich meine man muss casten, da er ja FP-Zahlen erhaelt. int minutes = (int)(timer / 60 / 60); int seconds = (int)(timer / 60 %60); int milliseconds = (int)(timer %60); label1.Text = String.Format("{0:D2}", minutes) + ":" + String.Format("{0:D2}", seconds) + ":" + String.Format("{0:D2}", milliseconds); [/PHP] Bearbeitet 20. November 2008 von Pointerman Code zugefuegt Zitieren
Hüsi Geschrieben 20. November 2008 Autor Geschrieben 20. November 2008 das wars, danke vielmals! hatte irgendwie gedacht, dass String.format nur auf Strings angewandt werden kann. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.