C# 如何将字符串转换为整数或小数?

C# 如何将字符串转换为整数或小数?,c#,decimal,C#,Decimal,我有以下代码: Console.WriteLine("What is the price of the product?"); Decimal price = Decimal.Parse(Console.ReadLine()); 我将一个输入作为一个字符串,作为一个整数或/和十进制数,并将其转换为一个变量。或者,这是我的意图。输入是产品的价格,可以有小数,也可以没有小数。如果你只输入整数,它会工作,但如果输入小数,它就会崩溃。我是新手,似乎找不到答案。用于防止异常: while (tru

我有以下代码:

Console.WriteLine("What is the price of the product?"); 
Decimal price = Decimal.Parse(Console.ReadLine());  
我将一个输入作为一个字符串,作为一个整数或/和十进制数,并将其转换为一个变量。或者,这是我的意图。输入是产品的价格,可以有小数,也可以没有小数。如果你只输入整数,它会工作,但如果输入小数,它就会崩溃。我是新手,似乎找不到答案。

用于防止异常:

while (true)
{
     string input = Console.ReadLine();
     decimal result;
     if (decimal.TryParse(input, out result))
     {
          // do your work
          break;
     }
     else
     {
          Console.WriteLine("invalid value try again");
     }
}

我还使用了
while
循环来强制用户输入正确的值。如果不需要,可以忽略循环。

实现这一点的方法有很多。例如:

string Input = Console.ReadLine();
Decimal InputConvertedAsDecimal;
if (Decimal.TryParse(Input, out InputConvertedAsDecimal)
{
    Console.WriteLine("Inputted number is: " + InputConvertedAsDecimal.ToString(CultureInfo.InvariantCulture));
}
else
{
    Console.WriteLine("Error! Input have a incorrect format to parse.");
}

你们到底在控制台窗口中输入什么?崩溃是什么意思。请显示堆栈跟踪或至少显示异常消息。“它崩溃”信息不足。请显示您的输入和异常。您确定使用的分隔符与程序预期的区域性匹配吗
11,5
在某些系统上有效,在其他系统上有效。@Theodoros就是这样做的,当我用逗号输入一个数字时,它有效,但当我使用点时无效。天哪,我觉得自己太傻了。