在我看来,正确的方法是 get CultureInfo,它将被视为;小数分隔符。如果CultureInfo没有,很容易在克隆后基于任何现有的自己创建它:这是代码
string value = "1;1";
var ci = (CultureInfo)CultureInfo.InvariantCulture.Clone();
ci.NumberFormat.NumberDecimalSeparator = ";";
Thread.CurrentThread.CurrentCulture = ci; // не CurrentUICulture!
Console.WriteLine(float.TryParse(value, out _));
在我看来,正确的方法是 get
CultureInfo,它将被视为;小数分隔符。如果CultureInfo没有,很容易在克隆后基于任何现有的自己创建它:这是代码输出
True。重置解决方案
Thread.CurrentThread.CurrentCulture具有全局效果:此程序中的所有行(好吧,在此线程中)都将使用分号作为小数分隔符。如果您的程序(显式或隐式)从“正常”字符串表示形式转换数字,这很可能会产生负面影响。例如,对于 WPF 应用程序,全局重新安装解决方案不太可能起作用。在这种情况下,您只需要本地重新安装:而不是示例的最后两行,只需
您可能需要
CultureInfo根据您的业务需求安装一个特定的。具体来说CultureInfo,用符号;作为分隔符,在我的系统上没有找到(除了点和逗号,这个符号٫被与阿拉伯语相关的语言使用),但也许你;只是举个例子.