long.TryParse双值

Ash*_*ani 2 c# parsing

在ASP.NET C#中,我发布了一个值,并且在回发中我需要将其解析为long值.从外观上看,具有浮点的值被视为非数字(或至少非长值),如果发布值为50.1

long x=0;
long.TryParse(Request.Form["x"], out x);
Run Code Online (Sandbox Code Playgroud)

返回0,这是默认值.但我需要50

Ian*_*Ian 7

返回0是正确的.如果你看一下Int64.TryParse,它声明它只解析整数值.50.4不是整数值.

相反,您可以将其解析为Double,然后将其舍入.

long x = 0;
Double value = 0;
if(Double.TryParse("50.4", out value))
{
   x = (long)Math.Truncate(value);
}
Run Code Online (Sandbox Code Playgroud)