2012-04-11 82 views
-1
Min = Convert.ToInt32(cbMin.SelectedItem); 

這是我的問題,使用該行將從combobox轉換爲整數變量。現在,如果從我的下拉菜單中選擇「00」或「05」,該值只會以「0」或「5」出現。它似乎只在數字「0」開始時纔會發生。從Combobox雙位數轉換爲int雙位數

遺漏了什麼? PS:順便說一句,當我設置組合框時,我只是使用側邊的屬性部分,並填寫了集合。只是想確保我把它扔在那裏。

+2

我很困惑。你是否說*你不希望''05''被轉換爲'5'?如果不是,你期望什麼* – Gabe 2012-04-11 15:47:27

+2

你在'Min'中使用的值是什麼?如果你需要的只是數值,那麼05 = 005 = 000005 = 5。如果你需要前導0作爲顯示目的,使用'ToString()'而不是'Convert.ToInt32()'。 – 2012-04-11 15:47:30

+0

到底什麼是「int double」數字?你偶然意味着一個整數的雙倍數? – 2012-04-11 15:50:48

回答

2

不轉換價值整數,如果你想領先的零化妝用字符串

i.ToString("00") 

的嘗試了這一點soltuon會爲你工作

最終代碼是

字符串s =(轉換。 ToInt32(cbMin.SelectedItem))。ToString(「00」)

編輯

如果你alredy assinged valeu以0比你只需要編寫

string Min = cbMin.SelectedItem.ToString(); 
2

整數沒有前導零。它們是數字數據類型。前導零隻能在字符串數據類型中使用。

  • INT 0是不一樣的字符串「0」
  • INT 1不一樣的字符串「1」

如果需要輸出與領先的0值,從來沒有在數學上使用它,你應該保持它作爲一個字符串。不要將它首先轉換爲int。

如果你需要它作爲一個整數來進行計算,那麼你需要將它轉換爲int,但是在需要前導零的地方,將其格式化。將其轉換回字符串並使用數據格式來獲得前導零。

"1".ToString("00")將導致「01」。

"15".ToString("00")將導致「15」。

有關格式化數值數據類型的更多信息,請參閱文檔here和自定義數字格式字符串(如上面的示例中所示)文檔here

+0

我不知道前導零隻能在字符串數據類型中使用。謝謝你的信息! – 2012-04-11 15:56:45

1

沒有意義使整數5作爲05C#。但是,如果想要一個字符串有這種格式,你可以這樣做:

string Min = Convert.ToInt32(cbMin.SelectedItem).ToString("00"); 

或者

string Min = String.Format("{0:0#}", Convert.ToInt32(cbMin.SelectedItem));