我正在通过视频教程做C#示例,我仔细查看了这段代码,但是当我运行它时,我发现添加“C”以使值成为货币在线:{{1}创建错误: mscorlib.dll中发生未处理的“System.FormatException”类型异常 附加信息:输入字符串的格式不正确。
我检查了返回“{100}”
的最后一行代码返回Console.WriteLine("Car's value: {0,C}", myNewCar.DetermineMarketValue());
我有点难过,不想跳过,来自VB.Net我可能会因为代码盲目而踢我自己!
完整代码:
carValue;
答案 0 :(得分:2)
使用以下行
Console.WriteLine("Car's value: {0:C}", myNewCar.DetermineMarketValue());
并在您的函数中使用decimal:
private static decimal determineMarketValue(Car _car)
{
decimal carValue = 250.00;
//this would usually come from online but this is hardcoded for examples
return carValue;
}
答案 1 :(得分:2)
我已经检查了文档 - 我唯一能想到的是你使用逗号而不是分号:
Console.WriteLine("Car's value: {0,C}", myNewCar.DetermineMarketValue());
应该是
Console.WriteLine("Car's value: {0:C}", myNewCar.DetermineMarketValue());
https://msdn.microsoft.com/en-us/library/586y06yf(v=vs.110).aspx
答案 2 :(得分:2)
格式应为{0:C}
(而不是{0,C}
。
答案 3 :(得分:1)
Console.WriteLine("Car's value: {0,C}", myNewCar.DetermineMarketValue());
此行上的错误由Exception告知您:输入字符串"Car's value: {0,C}"
格式错误。
如果您检查msdn上的Composite Formatting Syntax,则会看到错误位于{0,C}
,而应该是{0:C}
答案 4 :(得分:-1)
你应该使用
Console.WriteLine(string.Format("Car's value {0:c}",myNewCar.DetermineMarketValue());