Если вы хотите именно такой результат, вы не можете использовать какое-либо форматирование числовых данных, поскольку это не отформатирует 123
как 123.0
. Вы должны рассматривать значения как строки, чтобы сохранить конечный ноль.
Это дает именно тот результат, который вы просили:
string[] numbers = { "0", "0.0002", "0.531", "2.42", "12.5", "123.0", "123172" };
foreach (string number in numbers)
{
int pos = number.IndexOf('.');
if (pos == -1)
pos = number.Length;
Console.WriteLine(new String(' ', 6 - pos) + number);
}
Выход:
0
0.0002
0.531
2.42
12.5
123.0
123172