C#将任何格式字符串转换为double

时间:2011-06-06 11:49:32

标签: c# string format double type-conversion

我尝试搜索google和stackoverflow但没有成功。

我遇到“输入字符串格式不正确”的问题。我正在工作的应用程序的异常。

事情是,我用doubleNumber.ToString(“N2”)将一些double值转换为字符串;为了将它们存储在XML文件中。当我切换测试机器时,存储在其中的XML文件不能返回到双值。

我已经尝试了所有我能想到的解决方案,但设置数字文化不起作用,使用CultureInfo.InvariantCulture,替换字符也不起作用。有时这些值存储为“3,001,435.57”,有时(在其他PC上)如“3.001.435,57”。

是否有一些函数或方法来解析字符串中的double,无论输入格式是什么?

感谢。

2 个答案:

答案 0 :(得分:3)

你必须指定一种文化,因为(例如)“3,001”是不明确的 - 是3.001还是3001?

根据您的数字的样子,也许您可​​以尝试通过计算,.字符的数量和/或检查其位置来检测文化。

答案 1 :(得分:0)

这是你要找的......

http://msdn.microsoft.com/en-us/library/9s9ak971.aspx

这将接受字符串变量和格式提供程序。您需要创建一个格式提供程序,该提供程序提供您要转换的文化信息。