在.NET中,如何将"0.000"转换为"long"?

wil*_*lem 2 .net parsing

我有一个字符串,"0.000"(或任何类似的字符串),我想转换为长.我很高兴在小数点后"砍掉"任何东西.

最好的方法是什么?

我可以转换为double然后再转换为long,但我只是想知道是否有更简单的方法.以下所有语句都会抛出异常:

long l3 = Convert.ToInt64(nrToConvert);

long l1;
long.TryParse(nrToConvert, out l1);

long l2 = long.Parse(nrToConvert);
Run Code Online (Sandbox Code Playgroud)

Run*_* FS 5

通常,在解析字符串值时,我会首先将其解析为它所代表的类型.因此在这种情况下将其解析为double,因为它是double.是的,我写的解析不是故意转换的.在解析字符串时,有很多事情可能会出错,所以总是计划解析失败!它几乎肯定会在某个时候.

double val;
if(double.TryParse(nrToConvert,out val))
{
  //yous should validate that the value is within the expected range as well
  return (long)val;
}
else
{
  //do some error handling;
}
Run Code Online (Sandbox Code Playgroud)