string formatieren
-
hallo, ich möchte eine zahl variabler länge in einem immer gleich langen block darstellen. die zahl geht von 0 bis 255 und soll IMMER drei stellen lang sein (so dass text dahinter nicht verschoben wird).
Bsp:
240 soll so dargestellt werrden: '240'
23 so: ' 23'
9 so: ' 9'Er soll also von vorne mit Leerzeichen auffüllen.
Ich habe bereits zig Sachen mit String.Format probiert (z.b. string.Format("{0:###}",zahl) oder string.Format("{0:000}", zahl))
aber nichts brachte das was ich wollte.
Weiß jemand wie das geht?
-
string.Format("{0,3}",zahl);
-
T_B__ schrieb:
string.Format("{0,3}",zahl);
das funktioniert nicht. sobald die zahl nur noch 2 stellen hat rückt sie eins nach links und der nachfolgende text nach
noch jemand ne idee?
-
Ich verstehe nicht, warum es bei dir nicht funtionieren soll. Ich habe den Code mehrmals getestet.
Welche Entwicklungsumgebung bzw. welchen Compiler verwendest du denn?
Wie gibst du die Zahlen aus?
-
so gebe ich aus:
string.Format("{0,3} ({1,3}%)", (int)val, val*100/255.0f)wenn val dreistellig ist (zb 200) is alles wunderbar. Aber sobald es zweistellig wird (zB 99) rückt der hintere Teil nach vorne nach
Ich benutze VS.NET 2003
-
Wofür brauchst du denn das?
Wenn du eine Tabelle machen willst, kannst du auch einfach text-align auf right einstellen.
-
ich will keine tabelle machen. ich will einfach einen string der form
xxx (yy%)
ausgebenda xxx eben von [0;255] geht soll xxx IMMER 3 stellen lang bleiben, damit das (yy%) nicht immer nervig hin und her wackelt
-
Wo gibst du die Zahlen aus? Konsole? Listbox?
Vielleicht verwendest du die falsche Schriftart.
Nur bei Courier sind alle Zeichen gleich breit.
-
Guck mal hier, da findest du einige sogenannte MonoSpaced-Schriftarten: http://www.codestyle.org/css/font-family/sampler-Monospace.shtml
-
systemNr.ToString("00")
-
silversurger schrieb:
systemNr.ToString("00")
für deine 3 stellen natürlich:
deineZahl.ToString("000")