Cant cast float to int if object

c#, casting

Solution

You can cast a float to an int, but you can't cast a boxed float to an int - you have to unbox it first.

int fd = (int)(float)jf;

Read Eric Lippert's post Representation and Identity for more details.

Problem

This code runs fine ``` float ff = 5.5f; int fd = (int) ff; Console.Write(fd); ``` Where as this code doesnt ``` float ff = 5.5f; object jf = ff; int fd = (int) jf; Console.Write(fd); ``` What rule in the runner causes this to happen?

Original source