我有一个奇怪的问题。
我接收"无法从源类型转换为目标类型" -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中收到的异常不同,因此我无法找到这个确切的问题(特别是因为我愚蠢到不理解这是一个(联合国)拳击问题)。