[英]local fr-CA locale and issue with double
我有一個Web應用程序,用戶可以在其中更改語言環境,但是當用戶將語言環境更改為法語加拿大“ fr-CA”時,兩次轉換將引發無效的格式字符串錯誤。 發生的是,我從數據庫中獲取了一些數據,其中雙精度值以字符串形式出現,例如“ 232.33”。 問題是無法使用Parse或其任何變體將此字符串轉換為double值...我想知道有人可以對如何解析此double值有所了解,以便fr-CA語言環境允許我獲得double d = 232.33
謝謝
您可能已經注意到, Parse
和ToString
方法是特定於區域性的。
如果您一直希望這些格式是不變的(格式232.33而不是232,33)
您可以使用Parse
的重載來指定數字格式
decimal myDecimal = decimal.Parse("232.33", CultureInfo.InvariantCulture);
將小數轉換為字符串也是如此
decimal myDecimal = 232.33m;
string myString = myDecimal.ToString(CultureInfo.InvariantCulture); // "232.33" regardless of current threads culture
查看資源:
http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.invariantculture.aspx
主題略有偏離,但是您應該將小數作為正確的數字類型而不是字符串存儲在數據庫中。 這樣,您可以根據需要在查詢中使用聚合和數學運算,而且可以獲得更好的存儲優化,並且不必解析字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.