Помимо простого заполнения строки, вы можете сделать более сложную математику, чтобы определить количество цифр:
String FormatField(Int32 fieldWidth, Decimal value) {
var integerPartDigits =
value != Decimal.Zero ? (int) Math.Log10((Double) value) + 1 : 1;
var fractionalPartDigits = Math.Max(0, fieldWidth - integerPartDigits - 1);
return value.ToString("F" + fractionalPartDigits);
}
Обратите внимание, что если значение отрицательное или имеет целочисленную часть с цифрой, меньшей ширины поля, вы не получите желаемого результата. Однако вы можете изменить код для соответствия этим случаям, исходя из того, как именно вы хотите отформатировать и выровнять эти числа.