Не ожидается вывод в строковом форматере 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#?