簡體   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