C#将任何格式的字符串转换为双精度

本文关键字:转换 双精度 字符串 任何 格式 | 更新日期: 2023-09-27 17:58:25

我尝试搜索谷歌和stackoverflow,但没有成功。

我遇到了"输入字符串格式不正确"的问题。我正在使用的应用程序出现异常。

问题是,我将一些double值转换为具有doubleNumber.ToString("N2")的字符串;以便将它们存储在XML文件中。当我切换测试机器时,存储在其中的XML文件不能返回到双值。

我已经尝试了我能想到的所有解决方案,但设置数字区域性不起作用,使用CultureInfo.InvariantCulture替换字符也不起作用。有时值存储为"3001435.57",有时(在其他电脑上)存储为"3.001.435,57"。

无论输入格式是什么,是否有某种函数或方法可以解析字符串中的双精度?

谢谢。

C#将任何格式的字符串转换为双精度

您必须指定区域性,因为(例如)"3001"不明确-是3.001还是3001?

根据您的数字,也许您可以尝试通过计数,.字符的数量和/或检查它们的位置来检测区域性。

以下是您想要的。。。

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

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