所以我有一个项目来建立一个具有存款功能的银行账户系统。但是我无法存入输入到文本框中的金额,因为列表框中的项目是“对象”类型。如何将列表框中项目的数据类型从“对象”更改为“双精度”。 ---------仅供参考:这是家庭作业----------
这是我声明我的数组的方式:
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)添加到列表框中的选定帐户,但它会返回错误,说明转换错误,并且列表框中的项目类型为“object”而不是类型为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 :(得分:1)
问题是你没有在列表框中添加一个double,而是添加了一个字符串,因为你在它前面添加了$
字符。
设置
lstAccountBalances.FormatString = "c"; // c means currency
在开头的某个地方(例如在设计师中),然后添加没有美元符号的数字:
lstAccountBalances.Items.Add(balance);
之后,它们将保持double
,您可以将其从object