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

键入以下代码时,控制台将打开,我可以输入一个值,但当我按某个键时,.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();


        }

    }

}


慕斯王
浏览 253回答 4
4回答

米脂

我设法通过传入您要求输入的文本值来重现您的问题。如果通过我试图在“文本”的开头只键入“文本”+输入和$您的意思是在提示输入时键入“文本”,这就是您的问题。您的变量是双精度型,因此它不能接受字符串作为输入。尝试输入一个数值,看看这是否能解决您的问题。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}: ” );
打开App,查看更多内容
随时随地看视频慕课网APP