Feedback

Zahlen in beliebiger Schriftart untereinander anordnen

Sprache: C#

Zahlen in Umgebungen mit Fixed-Width/Monospace-Fonts untereinander anzuordnen ist mit Formatbezeichnern recht einfach, aber bei Proportionalschriftarten, wie System.Drawing.SystemFonts.DefaultFont ist das etwas schwieriger. Abhilfe schaffen hier sogenannte figure spaces (http://wikipedia.org/wiki/Figure_space), Leerzeichen, die so breit wie eine Ziffer sind.
int bigNumber = 1234;
int smallNumber = 5;

string bigNumberString = bigNumber.ToString();
string smallNumberString = smallNumber.ToString();

// Bei Monospace-Fonts
textBox1.Text = string.Format("{0,4}n{1,4}",
    bigNumberString,
    smallNumberString);

// Bei beliebigen Schriftarten
textBox1.Text = string.Format("{0}n{1}",
    bigNumberString,
    smallNumberString.PadLeft(bigNumberString.Length, 'u2007'));
int bigNumber = 1234;
int smallNumber = 5;

string bigNumberString = bigNumber.ToString();
string smallNumberString = smallNumber.ToString();

// Bei Monospace-Fonts
textBox1.Text = string.Format("{0,4}n{1,4}",
    bigNumberString,
    smallNumberString);

// Bei beliebigen Schriftarten
textBox1.Text = string.Format("{0}n{1}",
    bigNumberString,
    smallNumberString.PadLeft(bigNumberString.Length, 'u2007'));