Java 防止ArrayList添加
在我的程序中,我将CAD转换为美元作为一个例子,当我投入$10 CAD时,我得到$9.14美元,这是正确的。但在那之后,例如我添加$50 CAD并转换它,它将显示$60 CAD是$54.86 USD,而它应该只转换$50 CAD而不是60。这是因为arraylist中的数字正在相加,不知道该怎么做 下面是一个照片示例Java 防止ArrayList添加,java,arraylist,Java,Arraylist,在我的程序中,我将CAD转换为美元作为一个例子,当我投入$10 CAD时,我得到$9.14美元,这是正确的。但在那之后,例如我添加$50 CAD并转换它,它将显示$60 CAD是$54.86 USD,而它应该只转换$50 CAD而不是60。这是因为arraylist中的数字正在相加,不知道该怎么做 下面是一个照片示例 private void addButtonActionPerformed(java.awt.event.ActionEvent evt) { double money
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
double moneyValue = Double.parseDouble(moneyInput.getText());
int type = Integer.parseInt(typeInput.getText());
double conversion;
initialMoney.add(moneyValue);
if (moneyValue < 0){
errorLabel.setText("Value added is negative, please try again.");
}
else if(type < 1 || type > 20){
errorLabel.setText("An error has occurred, please try again.");
}
else if (moneyValue > 0){
if (type == 1){
conversion = initialCADtofinalUSD(moneyValue);
finalMoney.add(conversion);
}
else if (type == 2){
conversion = initialCADtofinalEUR(moneyValue);
finalMoney.add(conversion);
}
else if (type == 3){
conversion = initialCADtofinalCNY(moneyValue);
finalMoney.add(conversion);
}
else if (type == 4){
conversion = initialCADtofinalGBP(moneyValue);
finalMoney.add(conversion);
}
private void addButtonActionPerformed(java.awt.event.ActionEvent evt){
double moneyValue=double.parseDouble(moneyInput.getText());
int type=Integer.parseInt(typeInput.getText());
双转换;
初始化money.add(moneyValue);
如果(货币价值<0){
errorLabel.setText(“增值为负数,请重试”);
}
否则如果(类型<1 | |类型>20){
errorLabel.setText(“发生错误,请重试。”);
}
否则如果(moneyValue>0){
如果(类型==1){
换算=初始加元至最终美元(货币价值);
最终货币。添加(转换);
}
else if(类型==2){
转换=初始现金价值(moneyValue);
最终货币。添加(转换);
}
else if(类型==3){
换算=初始CADTOFINALCNY(货币价值);
最终货币。添加(转换);
}
else if(类型==4){
转换=初始CADTOFINALGBP(货币价值);
最终货币。添加(转换);
}
这里是它输出的地方
for (int i = 0; i < initialMoney.size(); i++){
initialMoneyOutput += initialMoney.get(i);
finalMoneyOutput += finalMoney.get(i);
}
DecimalFormat x = new DecimalFormat("0.00");
textAreaOutput.append("$" + x.format(initialMoneyOutput) + initialCurrencyAcronym + " is $" + x.format(finalMoneyOutput) + finalCurrencyAcronym + "\n");
for(int i=0;i
如果将整数存储在列表中,ArrayList本身不会添加整数。
每个整数都是ArrayList中的一个新Int对象,它与其他值无关。
实现中可能存在一些错误。
您可以发布您正在使用的代码段吗?在输出它的for循环之前,将initialMoneyOutput和finalMoneyOutput初始化为0 还有,为什么需要在for循环中添加所有初始货币值。 只需获取最新版本并进行转换。尝试以下代码: 不要使用for循环,只需编写以下内容-
initialMoneyOutput = initialMoney.get(initialMoney.size() - 1);
finalMoneyOutput = finalMoney.get(finalMoney.size() -1 );
给我们看一下你的代码怎么样?你在代码中的某个地方向第一个值添加第二个值。你希望我们如何在不显示它的情况下修复它?你需要共享一些代码,让我们找出错误所在,但我猜你是在重用一个变量(保存要转换的量的变量)然后以某种方式添加到列表中。
ArrayList
没有进行添加;列表只存储您放入其中的对象,它们不会作用于对象的内容。添加。对此表示抱歉。我不确定您的意思。我是个新手,您介意通过teamviewer或其他什么帮助我吗?是的,非常感谢