C# 区域小数分隔符输入

C# 区域小数分隔符输入,c#,decimal,cultureinfo,region,C#,Decimal,Cultureinfo,Region,我国的计算机不接受带“.”的小数,它们只接受“.” 如何编写一个接受控制台12.5作为十进制数的程序?使用CultureInfo。如果您确定使用小数点是您所在国家的标准,请使用您所在国家的CultureInfo。您可以简单地检查它是否正确 // Change kk-KZ to your culture code decimal dec = decimal.Parse(str, new CultureInfo("kk-KZ")); 或者您可以使用InvariantCulture和numbers

我国的计算机不接受带“.”的小数,它们只接受“.”


如何编写一个接受控制台12.5作为十进制数的程序?

使用
CultureInfo
。如果您确定使用小数点是您所在国家的标准,请使用您所在国家的
CultureInfo
。您可以简单地检查它是否正确

// Change kk-KZ to your culture code
decimal dec = decimal.Parse(str, new CultureInfo("kk-KZ")); 
或者您可以使用
InvariantCulture
numberstyle。任何

decimal dec = decimal.Parse(str, NumberStyles.Any, CultureInfo.InvariantCulture);
我将实施第二个,因为我不知道您来自哪里。
这是一个控制台应用程序,对我来说很有用:

public static void Main()
{
    string str;

    str = Console.ReadLine();

    decimal dec = decimal.Parse(str, NumberStyles.Any, CultureInfo.InvariantCulture);
    double db = double.Parse(str, NumberStyles.Any, CultureInfo.InvariantCulture);

    Console.WriteLine(dec.ToString("F2", CultureInfo.InvariantCulture));
    Console.WriteLine(db.ToString("F2", CultureInfo.InvariantCulture));

    return;
}

我想将12.5写入控制台,并将其解释为十进制。查看更新的答案。这就是解析从控制台中输入的字符串中以“
decimal
\
double
分隔的十进制点的方法。