区域小数分隔符输入
Regional decimal seperator input
我所在国家/地区的计算机不接受带有“.”的小数。他们只接受 ','
我如何编写一个程序来接受来自控制台的 12.5 作为十进制数?
使用CultureInfo
。如果您确定使用小数点是您所在国家/地区的标准,那么请使用您所在国家/地区的 CultureInfo
。你可以简单地检查它是否是。
// Change kk-KZ to your culture code
decimal dec = decimal.Parse(str, new CultureInfo("kk-KZ"));
或者您可以使用 InvariantCulture
和 NumberStyles.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;
}
我所在国家/地区的计算机不接受带有“.”的小数。他们只接受 ','
我如何编写一个程序来接受来自控制台的 12.5 作为十进制数?
使用CultureInfo
。如果您确定使用小数点是您所在国家/地区的标准,那么请使用您所在国家/地区的 CultureInfo
。你可以简单地检查它是否是。
// Change kk-KZ to your culture code
decimal dec = decimal.Parse(str, new CultureInfo("kk-KZ"));
或者您可以使用 InvariantCulture
和 NumberStyles.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;
}