2013-04-29 118 views
1

因此,我有一个项目可以创建具有存款功能的银行账户系统。但是,我不能将输入的金额存入文本框,因为列表框中的项目是“object”类型的。如何将列表框中项目的数据类型从“object”更改为“double”。 --------- FYI:THIS IS HOMEWORK ----------将“objects”类型的列表框项目转换为类型“int”

这是怎么了我宣布我的数组:

double[] accountbalances = {1348.36, 4456.63,2247.50,8175.86,4721.83,7815.35,3573.02,1603.53,4732.36, 2620.32}; 

    string[] accountnumbers = {"991364", "103655", "830087", "963216", "216329", "546188", "969200", "211794", "992629", "451876"}; 

这是我有我

foreach (double balance in accountbalances) 
     { 
      lstAccountBalances.Items.Add(("$") + balance); 
     } 
     foreach (string account in accountnumbers) 
     { 
      lstAccountNumbers.Items.Add(account); 
     } 

我想补充(depositamount)到所选择的帐户列表框中,但它返回一个错误说铸件是错误的,在列表框中的项目类型“:在下拉列表中显示阵列对象“而不是像我为数组定义的那样键入double。

private void button2_Click(object sender, EventArgs e) 
    { 
     double depositamount = double.Parse(textBox1.Text); 

     if (depositamount > 0 && lstAccountNumbers.SelectedIndex != -1) 
     { 
      int account = lstAccountNumbers.SelectedIndex; 

      double balance = (double)lstAccountBalances.Items[account]; 

      lstAccountNumbers.Items[account] = depositamount + balance; 
     } 
     else 
     { 
      MessageBox.Show("Enter Value Geater Than 0 and Select An Account Number ", "INVALID", MessageBoxButtons.OK, MessageBoxIcon.Error); 
     } 
    } 
+0

这个'C#'正确吗?你应该更新标签。 – squiguy 2013-04-29 02:06:49

+0

是的,我的错误。 – Mannie 2013-04-29 02:09:30

+1

现在很多人会看起来很流行的语言。祝你好运! – squiguy 2013-04-29 02:11:38

回答

1

的问题是,你还没有加入双到列表框,而是一个字符串,而不是,因为你在它前面加$字符。

设置

lstAccountBalances.FormatString = "c"; // c means currency 

某处开始(在设计,例如),然后添加数没有美元符号:

lstAccountBalances.Items.Add(balance); 

,他们将保持double并且你可以将它们从object

+0

它总是那些小东西-____-非常感谢您指出这一点。 – Mannie 2013-04-29 03:39:54