Vla*_*hev 5 c# floating-point parsing
在我的程序将要运行的环境中,人们使用','和'.' 在具有','和'.'的PC上随机显示小数分隔符 分隔符.
你将如何实现这样的floatparse(字符串)函数?
我试过这个:
try
{
d = float.Parse(s);
}
catch
{
try
{
d = float.Parse(s.Replace(".", ","));
}
catch
{
d = float.Parse(s.Replace(",", "."));
}
}
Run Code Online (Sandbox Code Playgroud)
它不起作用.当我调试它时,它第一次想到"."就会错误地解析它.是数千的分隔符(如100.000.000,0).
我是C#的noob,所以希望那里有更简单的解决方案:-)
注意:人们将同时使用'.' 和','在具有不同分隔符设置的PC中.
Hen*_*man 10
如果您确定没有人使用千位分隔符,您可以先替换:
string s = "1,23"; // or s = "1.23";
s = s.Replace(',', '.');
double d = double.Parse(s, CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
一般模式是: