我有InvalidCastException当我尝试投0.0到两倍,这是为什么呢?我这样做很好(float)value.

以下代码在最后一次分配时失败:
static void Main(string[] args)
{
int a = 5;
object b = 5;
System.Diagnostics.Debug.Assert( a is int && b is int );
double x = (double)a;
double y = (double)b;
}
Run Code Online (Sandbox Code Playgroud)
如果a和b都是int,那么这个错误的原因是什么?