繁体   English   中英

Visual Studio中的CultureInfo结果在Windows 8和Windows 10之间有所不同

[英]CultureInfo result in visual studio is different between windows 8 and windows 10

我发现CultureInfo类返回的信息(例如数字格式)在Windows 8.1和10中执行时会有所不同。我创建了一个简单的控制台应用程序,以使其符合以下要求。 在Windows 8.1中,转换的结果是2235。但是在Windows 10中,结果是0。我在两种环境中都使用Visual Studio 2013。

        CultureInfo cultureInfo = new CultureInfo(3079);
        System.Threading.Thread.CurrentThread.CurrentCulture = cultureInfo;
        System.Threading.Thread.CurrentThread.CurrentUICulture = cultureInfo;

        string value = "2.235";
        decimal test;
        decimal.TryParse(value, NumberStyles.Any, cultureInfo, out test); 

如果您需要其他任何信息以清晰呈现图片,请告诉我。

关于Prathap

这个

CultureInfo cultureInfo = new CultureInfo(3079);

是相同的

CultureInfo cultureInfo = new CultureInfo("de-AT");

这是奥地利文化。 他们使用逗号作为小数点分隔符,但使用空格作为千​​位分隔符(与德国人使用.代表千位分隔符相反)。

因此可以正常工作(为清晰起见,添加为,99 ,可以将其删除):

string value = "2 235,99";
bool valid = decimal.TryParse(value, NumberStyles.Any, new CultureInfo("de-AT"), out test);

但是这种格式不是: string value = "2.235,99"

因此,它与您的操作系统版本无关。

需要注意的是,你应该的结果总是存储TryParsebool )在一个变量或使用if...else而不是使用返回out值,以确定它是否能够被解析与否。 甚至0可能是有效值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM