Ваша проблема с (и не может быть ограничена) 2P
.
Фон
Скобки в string.Format
обозначают Элемент формата . Они представлены токеном Число , за которым следует и необязательно :
и Спецификатор формата .
Токен Число {0}
- это Индекс объекта, строковое значение которого будет вставлено в эту позицию.
Решить
Как вы можете видеть в своем коде, у вас есть {2P:P2}
, который не начинается с формата Номер позиции . Должно быть {2:P2}
Console.WriteLine("Sale # {0} was {1:C2} and contributed {2:P2}", i + 1, sales[i], contrubution);
** * 1035 1036 * Дополнительный
Могу ли я предложить интерполяцию строк , которая была введена в C#6
, вместо этого ее легче читать, и менее вероятно, что вы допустите ошибку, подобную этой
Console.WriteLine($"Sale # {(i + 1)} was {sales[i]:C2} and contributed {contrubution:P2}");