我来自意大利,所以这里的小数点分隔符为',',并且密码由char'分组。 为了简化,当用户不更改全局格式但只通过高级设置更改分隔符和组字符时,我必须处理数字。
所以你可以看到,尽管保持全局意大利语设置,我强制小数点分隔符为','并且密码组char为'。
话虽如此,我必须决定字符串是否为数字。为此,我使用以下s / r
public static bool IsNumeric(this string theValue)
{
long retNum;
return long.TryParse(theValue, NumberStyles.Integer, NumberFormatInfo.InvariantInfo, out retNum);
}
事实是long.TryParse失败了。当theValue为“14.142135624”时,我得到一个0 retNum值。
试图弄乱其他NumberStyles和NumberFormatInfo值,但没有得到任何有用的东西
感谢您的帮助。
答案 0 :(得分:1)
我们发现它与NumberStyles
枚举无关,但与您尝试解析的数据类型无关。
您正在尝试将包含十进制数的字符串解析为整数值类型。
您应该将呼叫从long.TryParse
更改为decimal.TryParse
,否则它将无效,因为该值绝对不是浮点数的整数。