我下载了一个程序,读取文件,然后从字符串解析双重值为双精度。但我得到一个异常,因为这个文件包含数字'。'分隔符,但在我的文化中有','。我如何明确设定文化?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. 如何将格式设置为字符串中的文本
- 7. 如何在VBA中设置文本/字符串的格式?
- 8. 参数字符串格式设置
- 9. Objective-C的浮动字符串格式化:格式化整数
- 10. 如何使用本地化字符串格式化字符串?
- 11. C++如何从文件设置字符串变量?
- 12. 如何格式化给定格式的数字字符串?
- 13. 如何以编程方式设置文档字符串?
- 14. C#字符串格式化字典Intellisence
- 15. 如何设置字符串中的字符数量?
- 16. Objective-C的字符串格式化
- 17. 如何格式化大字符串中的字符串?
- 18. Double.Parse使用特定文化
- 19. 字符串&字符串的设置值
- 20. C字符串的值设置为一个字符串
- 21. 如何格式化字符串,如#。#。#。#
- 22. .NET:如何将字符串显示为格式化的HTML?
- 23. 如何从属性文件设置字符串数组到@EnableJpaRepositories
- 24. objective-c字符串,字符串格式化程序
- 25. C#字符串格式化HTML字符串
- 26. 格式化长字符串转换为短字符串C#
- 27. C#格式化字符串日期
- 28. C#字符串格式化和填充
- 29. C++错误:字符串格式化
- 30. 如何将数字更改为格式化的字符串
此分隔符为我删除了逗号,并且没有添加点。我做错了什么? (谈论'var nfi'解决方案) – Rob 2013-06-20 11:07:30
@Robuust,NumberFormatInfo的默认构造函数基于不变文化,因此它已经使用dot作为小数分隔符。在上面的示例中,它应该按照预期解析数字,我只重置该属性以说明它是可写的,并且可以根据需要对其进行配置。为您提供一个提供您所面临问题的详细信息的新问题可能是最好的选择。 – 2013-06-20 11:34:51