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