Не ожидается вывод в строковом форматере C#

Поэтому я работаю над проектом для себя.

Сейчас пользуюсь string.formatter

bon = bon + String.Format("{0,-2} X {1,-10}  {1,5}", hoeveelheid[i], frieten[i], hulp);

Проблема заключается в том, что это double, Но это не показано в выводе. вместо этого выводится тот же вывод, что и Frieten[I].

Вот так:

4 X Кляйн Кляйн

Вывод должен быть таким: `

4X Клайн € 15,00

`

2 ответа

Вы повторяете свою вторую переменную дважды:

Измените последний формат с: {0,-2} X {1,-10} {1,5}в {0,-2} X {1,-10} {2,5}

Вам просто нужно изменить свой {1,5} в {2,5},

Также, если это двойное значение, вам может понадобиться отформатировать его "C" спецификатор формата.

Вы можете создать свой собственный NumberFormatInfo и отформатируйте ваш двойной как;

var nfi = new NumberFormatInfo()
{
     CurrencySymbol = "€",
     CurrencyDecimalSeparator = ",",
     CurrencyPositivePattern = 0,
     CurrencyDecimalDigits = 2
};

а также

bon = bon + String.Format("{0,-2} X {1,-10}  {2,5}", 
                          hoeveelheid[i], frieten[i], hulp.ToString("C", nfi));

Кстати, какой тип данных лучше всего использовать для денег в C#?

Другие вопросы по тегам