C# 如何在发送到表单标签时将列表变量格式化为数字或货币

C# 如何在发送到表单标签时将列表变量格式化为数字或货币,c#,forms,format,label,C#,Forms,Format,Label,使用员工薪酬信息更新windows窗体标签。我需要格式化输出以显示货币值对应的货币 我试着按照教科书中的说明使用 {0:C} 没有错误尝试将格式I显示为字符串的一部分。您需要调用string.format{0:C},该特定字符串上的值。比如: string.Format("Gross Pay: {0:C}",empList[x].grossP); 否则,您的代码将被解释为要打印{0:C}。您需要使用string.Format函数,以便它知道如何执行格式化。代码将格式视为字符串的一部分,而不是要

使用员工薪酬信息更新windows窗体标签。我需要格式化输出以显示货币值对应的货币

我试着按照教科书中的说明使用 {0:C}


没有错误尝试将格式I显示为字符串的一部分。

您需要调用string.format{0:C},该特定字符串上的值。比如:

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

否则,您的代码将被解释为要打印{0:C}。

您需要使用string.Format函数,以便它知道如何执行格式化。代码将格式视为字符串的一部分,而不是要格式化的内容

string.Format("{0:C}", empList[x].grossP) ;
此外,您的连接代码很难读取。您可能想考虑其他格式化选项。

字符串插值

字符串格式,并删除手动连接

编辑:

因为这是家庭作业,我不认为我应该提供一个直接的答案。也就是说,这里有一个例子可以帮助解释你需要做什么。基本上,您需要确保要格式化的字符串中指定的标记数量与传递的参数数量匹配

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);
现在,string.Format可以简化为:

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

变量放在里面,te:C格式信息放在后面。

可能重复的无错误尝试格式I显示为字符串的一部分,是吗?这意味着什么?我尝试了这个,它说有一个错误:System.FormatException:“基于零的索引必须大于或等于零,并且小于参数列表的大小。”是的,字符串插值是一个好主意。使代码更易于阅读我尝试了一下,它说有一个错误:System.FormatException:“基于零的索引必须大于或等于零,并且小于参数列表的大小。”该错误与格式字符串无关-这意味着您迭代的次数比数组中的项多。为什么不使用这里是StringBuilder而不是concatenation?@RufusL,但问题只发生在我有string.format时。
$"Gross Pay: {empList[x].grossP:C}";