将double转换为float时出现异常?

时间:2018-03-04 12:17:08

标签: c# casting

我有一个奇怪的问题。

我接收"无法从源类型转换为目标类型" -exception尝试从double转换为float时,但我无法理解为什么以及为什么这样(见下文)任何不同的工作。

//this throws exception
void doSomething1(object val)
{
   if(val is double || val is float)
   {
      doSomethingElse((float)val);
   }
}

//this works
void doSomething2(object val)
{
   if(val is double || val is float)
   {
      double tmpDouble = (double)val;
      float tmpFloat = (float)tmpDouble;
      doSomethingElse(tmpFloat);
   }
}

void doSomethingElse(float val)
{
//do something
}

我已经检查了Type的{​​{1}},它是val,所以这里有什么问题?

编辑: 标记为此的人有重复( kinda 是),但我收到的异常与"重复" -post中收到的异常不同,因此我无法找到这个确切的问题(特别是因为我愚蠢到不理解这是一个(联合国)拳击问题)。

0 个答案:

没有答案