我试图找出一个字符串值是否是任何类型的数字。数字可以是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
{
}
我在这段代码中做错了什么?
答案 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
}