我下載了一個程序,讀取文件,然後從字符串解析雙重值爲雙精度。但我得到一個異常,因爲這個文件包含數字'。'分隔符,但在我的文化中有','。我如何明確設定文化?C#:如何顯式設置文化的Double.Parse(字符串數)
0
A
回答
8
您將使用接受IformatProvider
的Parse
過載。
Double.Parse("23.56", new CultureInfo("..."))
如果你不知道用來寫你創建一個NumberFormatInfo
文件並配置它的文化,只要你喜歡:
var nfi = new NumberFormatInfo();
nfi.NumberDecimalSeparator = ".";
var d = Double.Parse("23.56", nfi);
0
也可使用:
double.Parse((""+s).Replace(",","."), System.Globalization.CultureInfo.InvariantCulture)
醜陋不堪,地獄,但這是.Net ... :)
2
這是我曾經這樣做,但我想我會使用NumberFormatInfo在將來 !
CultureInfo oldCulture = Thread.CurrentThread.CurrentCulture;
Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
try
{
if (Thread.CurrentThread.CurrentCulture != null)
{
double d = Double.Parse("23.5");
}
}
finally
{
Thread.CurrentThread.CurrentCulture = oldCulture;
}
+0
您可能會發現Raymond Chen的這一智慧有趣:[不要使用全局狀態來管理本地問題](http://blogs.msdn.com/b/oldnewthing/archive/2008/12/11/9193695的.aspx) – 2012-11-12 03:26:50
相關問題
- 1. 不能double.Parse字符串
- 2. 如何初始化C++中設置的字符串?
- 3. 格式化C字符串
- 4. 字符串格式化C#
- 5. C#+字符串格式化
- 6. 錯誤的值與double.Parse(字符串)
- 7. 如何設置顯示數字的填充字符(目標C)
- 8. 如何從C中的值數組中格式化字符串?
- 9. C#字符串到SqlDateTime:如何設置識別格式?
- 10. 如何將格式設置爲字符串中的文本
- 11. 如何在VBA中設置文本/字符串的格式?
- 12. Objective-C的浮動字符串格式化:格式化整數
- 13. 參數字符串格式設置
- 14. 如何使用本地化字符串格式化字符串?
- 15. 輸入字符串在double.Parse中的格式不正確
- 16. C++如何從文件設置字符串變量?
- 17. 如何格式化給定格式的數字字符串?
- 18. C#字符串格式化字典Intellisence
- 19. 如何以編程方式設置文檔字符串?
- 20. 在C#中的字符串格式化#
- 21. Objective-C的字符串格式化
- 22. 如何設置字符串中的字符數量?
- 23. 如何設置字符串數組中的文本?
- 24. 根據設備區域設置格式化日期字符串
- 25. 如何格式化大字符串中的字符串?
- 26. 如何設置JSON參數時JSON是字符串格式
- 27. 輸入字符串格式不正確,「double.parse(textbox.text);」
- 28. 設置文字大小的字符串
- 29. Double.Parse使用特定文化
- 30. 如何格式化字符串,如#。#。#。#
此分隔符爲我刪除了逗號,並且沒有添加點。我做錯了什麼? (談論'var nfi'解決方案) – Rob 2013-06-20 11:07:30
@Robuust,NumberFormatInfo的默認構造函數基於不變文化,因此它已經使用dot作爲小數分隔符。在上面的示例中,它應該按照預期解析數字,我只重置該屬性以說明它是可寫的,並且可以根據需要對其進行配置。爲您提供一個提供您所面臨問題的詳細信息的新問題可能是最好的選擇。 – 2013-06-20 11:34:51