区域小数分隔符输入

Regional decimal seperator input

我所在国家/地区的计算机不接受带有“.”的小数。他们只接受 ','

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

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

// Change kk-KZ to your culture code
decimal dec = decimal.Parse(str, new CultureInfo("kk-KZ")); 

或者您可以使用 InvariantCultureNumberStyles.Any:

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;
}