藍寶 發問時間: 電腦與網際網路程式設計 · 1 0 年前

C#的float要怎麼轉換為int ?

錯誤 1 型別 'float' 不能隱含轉換為 'int'。已有明確轉換存在 (您是否漏掉了轉

型?)

float p;

int o;

o = (int)p;

我寫這樣仍失敗

已更新項目:

float p;

int o;

o = int.Parse(p);

這樣還是不行...

而且變三個錯誤

錯誤1最符合的多載方法 'int.Parse(string)' 有一些無效的引數

錯誤2引數 '1': 無法從 'float' 轉換為 'string'

錯誤3型別 'float' 不能隱含轉換為 'int'

2 個已更新項目:

我想設

float p = ThinkGear.TG_GetValue(x1, ThinkGear.DATA_THETA);

再寫

float p= 0.1f;

int o = 0;

o = Convert.ToInt32(p);

就跑不出來了

3 個已更新項目:

ThinkGear.TG_GetValue(x1, ThinkGear.DATA_THETA);的變數是要由float編寫設變數

4 個已更新項目:

p要先設定初值,不然不會過。

例如要怎麼設初值呢?

p=3.2;

float p= 0.1f;

int o = 0;

o = Convert.ToInt32(p);

這樣有錯...

1 個解答

評分
  • Sam
    Lv 5
    1 0 年前
    最佳解答

    o = int.Parse(p);

    2010-11-17 23:32:53 補充:

    抱歉,string to int 才是用 int.Parse,改這樣:

    float p= 0.1f;

    int o = 0;

    o = Convert.ToInt32(p);

    p要先設定初值,不然不會過。

    2010-11-18 13:24:23 補充:

    我不知道你的 ThinkGear.TG_GetValue(x1, ThinkGear.DATA_THETA);

    會回傳什麼東西,你確定是 float 嗎?

    另外 float p 你宣告了兩次,編譯當然會錯誤。

    2010-11-18 16:47:09 補充:

    不懂你在說什麼耶,什麼叫做「是要由float編寫設變數」?

    2010-11-18 19:26:24 補充:

    float p= 0.1f; //<-這叫初值,你也可以改成3.2f,f表示為float...

    int o = 0;

    o = Convert.ToInt32(p);

    參考資料: me, me, me, me, me
還有問題?馬上發問,尋求解答。