在键入以下代码时,控制台会打开,我可以输入一个值,但是当我按下一个键时,.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();
}
}
}
答案 0 :(得分:1)
我设法通过在您要求输入的文本值中输入来重现您的问题。如果是
我尝试仅在“文本”开头输入“文本” +输入和$
您的意思是提示输入时正在键入“文本”,这就是您的问题。
您的invoer
变量是双精度型,因此它不能接受字符串作为输入。尝试输入数字值,看看是否可以解决您的问题。
除了这个问题,还有另一件事需要修复。
正如其他一些人指出的那样,您设置的字符串格式不正确。如果您解决了原始错误,这将导致问题。要解决此问题,请将该行更改为:
Console.WriteLine($"The prize is {invoer}, the VAT is {BTW}: Total price is {metBTW}: ");
这应该产生一个正常运行的程序。
答案 1 :(得分:0)
可能是您输入的字符串无法在ReadLine调用中解析为double。
如果提出此替代解决方案来解决此问题。
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");
}
答案 2 :(得分:0)
使用TryParse代替使用Parse。 (对于有效值,它返回true,对于无效值,它返回false。)像这样使用:
double number;
if (Double.TryParse(Console.ReadLine(), out number))
{
// normal flow
}
else
{
// bad input (not a double, request another input)
}
答案 3 :(得分:-2)
尝试一下
Console.WriteLine(String.Format(“ De prijs是{0}:de btw是{1}:Totaalprijs是{2}:”,invoer,BTW,metBTW));
或
此
Console.WriteLine($“ De prijs是{invoer}:de btw是{BTW}: Totaalprijs是{metBTW}:“);