Как отформатировать список переменных как число или валюту при отправке на метку формы - PullRequest
0 голосов
/ 19 сентября 2019

Обновление метки окна формы с информацией о зарплате сотрудника.Мне нужно отформатировать вывод для отображения валюты для денежных значений.

Я пытался следовать инструкциям в моем учебнике для форматирования с использованием {0: C}.

// Output to label.
lblEmployees.Text += "Name: " + empList[x].name + " Gross Pay: {0:C}" + 
empList[x].grossP + " Social Security Withheld: " + empList[x].socialW
+ " Medicare Withheld: " + empList[x].medicareW + " State 
Income Tax Withheld: " + empList[x].stateW  + " Federal Income Tax Withheld: 
" + empList[x].federalW + " Net Pay: " + empList[x].netP + "\n";

Не было ошибок при форматировании, которое я отображал как часть строки.

Ответы [ 3 ]

1 голос
/ 19 сентября 2019

Вам нужно использовать функцию string.Format (), чтобы она могла выполнять форматирование.Ваш код воспринимает формат как часть строки, а не как формат для форматирования.

string.Format("{0:C}", empList[x].grossP) ;

Кроме того, ваш код конкатенации очень сложен для чтения.Возможно, вы захотите рассмотреть другие параметры форматирования.

Строковая интерполяция.

https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/tokens/interpolated

Строковое форматирование полностью и удаление ручной конкатенации.

https://docs.microsoft.com/en-us/dotnet/api/system.string.format?view=netframework-4.8

РЕДАКТИРОВАТЬ:

Поскольку это домашняя работа, я не думаю, что я должен дать прямой ответ.Тем не менее, вот пример, который должен помочь объяснить, что вам нужно сделать.По сути, вам нужно убедиться, что количество токенов, указанное в вашей строке для форматирования, соответствует количеству переданных аргументов.

string firstArgForFormatString = "part 1";
int secondArgForFormatString = 50;
decimal thirdArgForFormatString = 35.2m;

lblSomeLabel.Text += string.Format("first value will replace next token {0} and another value {1} and yet another value to format {2:C}.",
     firstArgForFormatString, 
     secondArgForFormatString, 
     thirdArgForFormatString);
0 голосов
/ 20 сентября 2019

В настоящее время string.Format() можно просто определить следующим образом:

$"Gross Pay: {empList[x].grossP:C}";

Переменная находится внутри, а информация о :C размещается сразу за ней.

0 голосов
/ 19 сентября 2019

Вам нужно вызвать String.Format ("{0: C}", значение) для этой конкретной строки.Например:

string.Format("Gross Pay: {0:C}",empList[x].grossP);

В противном случае ваш код будет интерпретирован так, как вы хотите напечатать "{0: C}".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...