将任何字符串编号解析为数字

时间:2014-10-12 20:50:16

标签: c#

我试图找出一个字符串值是否是任何类型的数字。数字可以是23.23美元,(232.3434),34.4545,64.345,34.34%

对于美元和百分比,我可以从字符串中删除%和$符号,但我无法使用此代码解析此数字。

        string _number = "64.345";

        double _double;

        if (Double.TryParse(_number, NumberStyles.Any, null, out _double))
        {

        }
        else
        {
        }

我在这段代码中做错了什么?

2 个答案:

答案 0 :(得分:2)

您的操作系统的文化设置是什么,可能会误解.

如果您传入的是CultureInfo.InvariantCulture而不是null,那么格式提供程序应该可以解决您的问题。传入null时,它使用CultureInfo.CurrentCulture,并且您的PC设置为不将.解释为十进制数的分隔符的区域性。

答案 1 :(得分:0)

您可以尝试使用double.Parse()代替try catch语句,如下所示:

string _number = "64.345";

double _double;

try
{
   _double = Double.Parse(_number)
   // Other actions
}
catch (FormatException ex)
{
   // Actions for when invalid parameter is given for parse
}