此代碼運行正常廣東話投浮法爲int如果對象
float ff = 5.5f;
int fd = (int) ff;
Console.Write(fd);
在哪裏,因爲這代碼犯規
float ff = 5.5f;
object jf = ff;
int fd = (int) jf;
Console.Write(fd);
什麼規則亞軍原因導致這種情況發生呢?
此代碼運行正常廣東話投浮法爲int如果對象
float ff = 5.5f;
int fd = (int) ff;
Console.Write(fd);
在哪裏,因爲這代碼犯規
float ff = 5.5f;
object jf = ff;
int fd = (int) jf;
Console.Write(fd);
什麼規則亞軍原因導致這種情況發生呢?
你可以將一個浮點數轉換爲一個int值,但是你不能將一個盒裝的浮點數轉換爲一個int - 你必須首先對它進行解除操作。
int fd = (int)(float)jf;
閱讀Eric Lippert的帖子Representation and Identity瞭解更多詳情。
float ff = 5.5f;
object jf = ff;
int fd = (int) jf;
在這裏,當你從浮到對象,實際類型的JF是浮動框,你是一個拆箱裝箱的浮動直接爲int未運行時所接受。
所以你需要先拆箱才能浮動然後再次施放到int。