字符串到数字转换和组分隔符

Loi*_*oic 5 c# parsing cultureinfo

当我尝试使用Parse或TryParse或Convert.ChangeType将字符串转换为数值时,我无法管理在系统中定义的千分隔符:

如果我输入:

var d = double.Parse("1,234", CultureInfo.CurrentUICulture);
Run Code Online (Sandbox Code Playgroud)

它没有返回1234.

如果我想使用组分隔符,我必须输入:

var d = double.Parse("1,234", NumberStyles.Number, CultureInfo.CurrentUICulture);
Run Code Online (Sandbox Code Playgroud)

这一次,结果是预期的结果.

但是,我不想强​​制使用千位分隔符,我想只在系统在全球化设置中指定它时才使用它.有没有办法知道是否使用了分隔符(我知道我可以读取组分隔符CultureInfo.CurrentUICulture.NumberFormat.NumberGroupSeparator)

干杯Loic

Dan*_*ain 0

你总是可以使用你使用的第二行

var d = double.Parse("1,234", NumberStyles.Number, CultureInfo.CurrentUICulture);
Run Code Online (Sandbox Code Playgroud)

因为它会正确转换 1234 以及 1,234,并且在使用“.”的系统上应该覆盖 1.234。作为组分隔符