1.2.3是双数据类型

Vin*_*ini 2 c# parsing

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)

Jam*_*ell 5

您是否考虑过实际测试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个参数,并允许您指定解析器在哪些方面有效方面的工作方式(负数,小数点,指数等)

  • 你需要有字符串本地化的版本https://msdn.microsoft.com/en-us/library/3s27fasw(v=vs.110).aspx (2认同)