转换为货币时,Double的值不正确

时间:2015-09-18 11:27:05

标签: c#

我正在通过视频教程做C#示例,我仔细查看了这段代码,但是当我运行它时,我发现添加“C”以使值成为货币在线:{{1}创建错误: mscorlib.dll中发生未处理的“System.FormatException”类型异常 附加信息:输入字符串的格式不正确。

我检查了返回“{100}”

的最后一行代码返回Console.WriteLine("Car's value: {0,C}", myNewCar.DetermineMarketValue());

我有点难过,不想跳过,来自VB.Net我可能会因为代码盲目而踢我自己!

完整代码:

carValue;

5 个答案:

答案 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());
相关问题