如何从c#中的组合框中获取浮点值

时间:2014-01-28 17:12:06

标签: c#

请在这种情况下帮助我

float sumofgradeintocradit = float.Parse(comboBox1.Text);

但是一个例外是“输入字符串格式不正确。”

有什么问题请给我一些解决方案我想从组合框中取一个值并存储为浮点数。

3 个答案:

答案 0 :(得分:1)

而不是尝试将显示文本转换回浮点数, 您可以使用自定义对象,该对象允许保持值与显示的文本分开。

示例:

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等其他内容。

答案 1 :(得分:0)

comboBox1.Text不包含正确格式的flot。

用于调试打印/跟踪值以进行确认。

您可以添加客户端验证,以确保其格式正确。

之后,如果它是客户端服务器应用程序,您可以添加服务器端验证来处理以下MSDN中提到的异常,并使用try parse或try catch重新提示用户输入。 http://msdn.microsoft.com/en-us/library/2thct5cb(v=vs.110).aspx

参考: 另请参阅解析数字字符串的以下内容 http://msdn.microsoft.com/en-us/library/xbtzcc4w(v=vs.110).aspx

答案 2 :(得分:0)

如果我是你,我会尝试这个:

float sumofgradeintocradit ;
float.TryParse(comboBox1.Text, out sumofgradeintocradit );

这将检查combobox1.text是否为有效的float,如果是,则将值赋给sumofgradeintocradit

HTH