错误: 未处理的异常: 系统格式异常: 输入字符串的格式不正确



键入以下代码时,控制台打开,我可以输入一个值,但是当我按下某个键时,.NET 崩溃并且控制台关闭

我尝试在"文本"的开头仅输入"文本"+输入和$

using System;
namespace Programmeren1Week2
{
    class Program
    {
        const double BTW = 0.21;
        static void Main(string[] args)
        {
            Console.WriteLine("Geef prijs:");
            Console.ReadLine();
            double invoer = double.Parse(Console.ReadLine());
            double metBTW = invoer * BTW;
            Console.WriteLine($"De prijs is {0}:" + invoer, "de btw is {1}:" + BTW, "Totaalprijs is {2}: " + metBTW);
            Console.ReadKey();
        }
    }
}

我设法通过传入您要求输入的文本值来重现您的问题。如果通过

我尝试在"文本"的开头仅输入"文本"+输入和$

你的意思是你在提示输入时输入"文本",这就是你的问题。

您的invoer变量是双精度值,因此它不能接受字符串作为输入。尝试输入一个数值,看看是否能解决您的问题。


撇开这个问题不谈,还有一件事需要解决。

正如其他一些人指出的那样,您的字符串格式不正确。如果您修复原始错误,这将导致问题。若要解决此问题,请将该行更改为:

Console.WriteLine($"The prize is {invoer}, the VAT is {BTW}: Total price is {metBTW}: ");

这应该产生一个有效的程序。

可能是

您在 ReadLine 调用中输入了一个无法解析为双精度的字符串。

如果提出此替代解决方案来处理此问题。

 Console.WriteLine("Geef prijs:");

  if(double.TryParse(Console.ReadLine(), out double invoer))
  {
   double metBTW = invoer * BTW;
   Console.WriteLine($"De prijs is : {invoer} , de btw is : {BTW} , otaalprijs is : {metBTW}");
   Console.ReadKey();
}
else 
{
  Console.WriteLine("Bad input");
}
不要使用 Parse,

而是使用 TryParse。(对于有效值,它返回 true,对于无效值返回 false。 像这样使用它:

double number;
if (Double.TryParse(Console.ReadLine(), out number))
{  
   // normal flow
}
 else
{
   // bad input (not a double, request another input)
}

试试这个

Console.WriteLine(String.Format("De prijs is {0}: de btw is {1}: Totaalprijs is {2}: ", invoer, BTW, metBTW((;

Console.WriteLine($"De prijs is {invoer}: de btw is {BTW}: Totaalprijs is {metBTW}: " (;

最新更新