C# mscorlib.dll 中发生类型 'System.FormatException' 的未处理异常
C# An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll
不确定我做错了什么。我有一个程序要求输入 2 个选项中的 1 个,然后显示相关选项的成本。
我收到错误消息“'System.FormatException' 类型的未处理异常发生在 mscorlib.dll
附加信息:字符串的长度必须正好是一个字符。
我的代码做错了什么?见下文:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace computerPackage
{
class Program
{
static void Main(string[] args)
{
char computerPackage;
const decimal DELUXE_PACKAGE = 1500;
const decimal SUPER_PACKAGE = 1700;
Console.Write("Input the Computer Package D or S: ");
computerPackage = char.Parse(Console.ReadLine());
computerPackage = Char.ToUpper(computerPackage);
if (computerPackage == 'D')
{
Console.WriteLine("Cost of Deluxe Computer Package is " + DELUXE_PACKAGE.ToString("D"));
}
else if (computerPackage == 'S')
{
Console.WriteLine("Cost of Deluxe Computer Package is " +
SUPER_PACKAGE.ToString("S"));
}
else
{
Console.WriteLine("Package D or S not entered");
}
Console.WriteLine("Press any key to continue...");
Console.ReadKey(); // pause
}
}
}
问题出在小数点上的 ToString 方法。您可以请求特定的格式,请在此处查看它们:
兄弟,错误的原因是 Console.WriteLine("Cost of Deluxe Computer Package is " + DELUXE_PACKAGE.ToString(D));
告诉运行时环境将其设置为日期时间格式。将其更改为 Console.WriteLine("Cost of Deluxe Computer Package is " + DELUXE_PACKAGE.ToString());
不确定我做错了什么。我有一个程序要求输入 2 个选项中的 1 个,然后显示相关选项的成本。
我收到错误消息“'System.FormatException' 类型的未处理异常发生在 mscorlib.dll
附加信息:字符串的长度必须正好是一个字符。
我的代码做错了什么?见下文:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
namespace computerPackage
{
class Program
{
static void Main(string[] args)
{
char computerPackage;
const decimal DELUXE_PACKAGE = 1500;
const decimal SUPER_PACKAGE = 1700;
Console.Write("Input the Computer Package D or S: ");
computerPackage = char.Parse(Console.ReadLine());
computerPackage = Char.ToUpper(computerPackage);
if (computerPackage == 'D')
{
Console.WriteLine("Cost of Deluxe Computer Package is " + DELUXE_PACKAGE.ToString("D"));
}
else if (computerPackage == 'S')
{
Console.WriteLine("Cost of Deluxe Computer Package is " +
SUPER_PACKAGE.ToString("S"));
}
else
{
Console.WriteLine("Package D or S not entered");
}
Console.WriteLine("Press any key to continue...");
Console.ReadKey(); // pause
}
}
}
问题出在小数点上的 ToString 方法。您可以请求特定的格式,请在此处查看它们:
兄弟,错误的原因是 Console.WriteLine("Cost of Deluxe Computer Package is " + DELUXE_PACKAGE.ToString(D));
告诉运行时环境将其设置为日期时间格式。将其更改为 Console.WriteLine("Cost of Deluxe Computer Package is " + DELUXE_PACKAGE.ToString());