簡體   English   中英

無法將浮標轉換為int如果對象

[英]Cant cast float to int if object

這段代碼運行正常

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 fd = (int)(float)jf;

閱讀Eric Lippert的帖子“ 表示和身份”以了解更多詳細信息。

float ff = 5.5f; 
object jf = ff;
int fd = (int) jf;

在這里,當您從float到object裝箱時,jf是float的實際類型,並且您將裝箱的float直接拆箱到int,而運行時不接受。

因此,您需要先取消裝箱使其浮動,然后再次將其強制轉換為int。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM