簡體   English   中英

C#區域設置混亂

[英]C# region settings confused

其全部有關雙精度,浮點數和分隔符。 所以我的問題是:我總是通過點分隔符獲得雙重價值。 如果將其轉換為字符串,則會出現逗號。 如果我將其更改為兩倍,則會再次出現點。 在此處添加一些代碼:

    data = Convert.ToDouble(read.ReadSingle()); // converts to -70.00
    Conv = Convert.ToString(data); // converts to -70,00 string
    laikinas[k, m] = double.Parse(Conv);  // and in array I'll get 70.00. 

我敢肯定,區域設置一切都很好。 我可以看到CurrentCulture的樣子。

順便說一句,我在離開項目一半時更改了區域設置。

double既沒有點也沒有逗號 ; 它以某種內部表示形式存儲。 當你看到它 ,例如,通過Visual Studio調試器,你看它的一些字符串表示(其中Visual Studio中選擇使用一個)。 此字符串表示形式無關緊要,僅出於調試目的而顯示。

如果您將您的雙成一個字符串, 可以選擇數字格式使用:

  • Convert.ToString(Double)等效於Double.ToString() ,后者根據您當前的區域性使用小數點分隔符-因此,使用Convert.ToString時,會出現逗號(在系統上)。

  • 如果使用其他轉換方法,例如Double.ToString(IFormatProvider) ,則可以指定要用作參數的區域性設置。 例如, myDouble.ToString(CultureInfo.InvariantCulture)始終使用點作為小數點分隔符,而與用戶的區域性設置無關。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM