我Double.TryParse()用来查找给定的字符串是否为数字.我不知道怎么TryParse运作.但是,当我给出一个像54.34.23它返回true 的输入时.我正在使用Visual Studio Express 2013中的MVC5应用程序.
所以54.34.23真的是一个数字,或者我必须做其他事情,TryParse因为它在给出上面的输入时返回false.
添加更多细节1.2.3.4也会返回true.
if (!double.TryParse(setValue.Value, out val))
{
ModelState.AddModelError("Value", "Value can only be a number");
return View(setValue);
}
Run Code Online (Sandbox Code Playgroud)
您是否考虑过实际测试TryParse()以确定它给您带来的结果.我刚刚在这里测试了以下代码main()...
double x;
Console.WriteLine("Parse: {0}", double.TryParse("54.34.23", out x).ToString());
Console.WriteLine("Value: {0}", x);
Run Code Online (Sandbox Code Playgroud)
......结果......
Parse: False
Result: 0
Run Code Online (Sandbox Code Playgroud)
由于我得到了不同的结果,似乎我们(正如Ewan在评论中指出的)本地化问题并且为了解决这个问题,您需要TryParse()通过本地化TryParse()方法指定要使用的规则(在msdn中记录) .microsoft.com.)
这需要4个参数,并允许您指定解析器在哪些方面有效方面的工作方式(负数,小数点,指数等)