請幫我在這種情況下如何獲得價值浮動從組合框在C#
float sumofgradeintocradit = float.Parse(comboBox1.Text);
但捕獲的異常說「輸入字符串的不正確的格式。」
有什麼問題,請給我一些解決方案,我想借此從組合框和存儲作爲一個浮動的值。
請幫我在這種情況下如何獲得價值浮動從組合框在C#
float sumofgradeintocradit = float.Parse(comboBox1.Text);
但捕獲的異常說「輸入字符串的不正確的格式。」
有什麼問題,請給我一些解決方案,我想借此從組合框和存儲作爲一個浮動的值。
comboBox1.Text不包含正確的格式的海軍報。
爲了調試打印/跟蹤的價值進行確認。
您可以添加客戶端驗證,以確保它是正確的格式。
後,如果它是一個客戶端服務器應用程序,你可以添加一個服務器端驗證來處理下面的MSDN提到的例外情況,並通過嘗試解析或嘗試捕獲重新提示用戶輸入。 http://msdn.microsoft.com/en-us/library/2thct5cb(v=vs.110).aspx
參考: 也可參閱解析數字字符串以下 http://msdn.microsoft.com/en-us/library/xbtzcc4w(v=vs.110).aspx
如果我是你,我會試試這個:
float sumofgradeintocradit ;
float.TryParse(comboBox1.Text, out sumofgradeintocradit);
此檢查,看是否combobox1.text是有效的浮點數,如果是,則分配值爲sumofgradeintocradit
HTH
謝謝,但它只是說它是真的或假的,它顯示0,但我在組合框中選擇1或2。 –
剛纔說的是真是假?你也確定你有'out sumofgradeintocradit'作爲第二個參數嗎? – davidsbro
,而不是試圖顯示文本轉換回浮動, 您可以使用自定義的對象,這使得控股值從展示的文字分開。
例子:
private class ComboItem
{
public string ItemText { get; set; }
public float ItemFloat { get; set; }
public ComboItem(string itemText, float itemFloat)
{
this.ItemText = itemText;
this.ItemFloat = itemFloat;
}
public override string ToString()
{
return this.ItemText;
}
}
private void AddItemsToComboBox
{
comboBox1.Items.Add(new ComboItem("One Point Two", 1.2f));
comboBox1.Items.Add(new ComboItem("Three Point Four", 3.4f));
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var selectedFloat = ((ComboItem)comboBox1.SelectedItem).ItemFloat;
Debug.Print("Selected: " + selectedFloat);
}
這也適用於其他像ListView中。
您可以發佈組合框的內容/ HTML,因爲它聽起來像.Text不包含有效的浮動。 – Mark
注意,'sumofgradeintocradit'應該是'sumofgradeintocredit''? – Shiva
您可以使用'float.TryParse()'來查看組合框文本是否爲有效的浮點值 – davidsbro