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

本文关键字:数字 编号 任何 字符串 | 更新日期: 2023-09-27 18:26:16

我正试图弄清楚字符串值是否是任何类型的数字。这些数字可以是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
        {
        }

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

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

您的操作系统的区域性设置是什么,很可能是误解了.

如果您将CultureInfo.InvariantCulture而不是null传递给格式提供程序,则应该可以解决您的问题。当您传入null时,它将使用CultureInfo.CurrentCulture,并且您的电脑被设置为一个区域性,该区域性不会将.解释为十进制数字的分隔符。

您可以尝试使用double。用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
}